بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

نمایش ProgressBar پیش از لود شدن لیست ویو

مدیریت گفتگو
sirlordpouya 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام.

من یه برنامه نوشتم که تمام دیتای مورد نیازش رو به صورت لیست ویو از سرور میگیره.

میخوام تا قبل از این که دیتای لیست ویو ها لود شه، یه لودینگ به کاربر نمایش داده بشه تا بدونه که کاری داره انجام میشه.

جایی خوندم که با استفاده از AsyncTask یه کارایی میشه کرد، اما دقیقا نمیدونم چجوری؟

امکانش هست کمک کنین؟؟ممنونم

نظرات

Hossein Lamei Ramandi 10 سال پیش
خوب در آقاز یه لودینگ به کاربر نشون بدید و زمانی که دیتادریافت شد اونو اینویزیبل یا گان کنید !
sirlordpouya 10 سال پیش
@admirallam خب چجوری بفهمم که دیتا کامل دریافت شده !
Hossein Lamei Ramandi 10 سال پیش
تا قبل اینکه لیست ویو رو پر کنی دیتا دریافت نشده ولی وقتی که متد adapter.notifidatasetchange رو صدا میزنی لیست پر میشه قبل این متد میتونی اونی Gone یا INVISIBLE کنی
sirlordpouya 10 سال پیش
این کاری که گفتی رو کردم.اما نمیشه.تا زمانی که دیتاها کامل دریافت نشه و توی لیست ویو نشینه اپ هیچ چیزی نشون نمیده. صبر میکنه تا دیتاها کامل دریافت شن و بشینن تو لیست ویو بعد xml رو باز میکنه
Hossein Lamei Ramandi 10 سال پیش
شما از ترد استفاده نکردید اینکارو بکنید مشکل حل میشه

پاسخ‌ها 1

sirlordpouya 10 سال پیش

من از این روش استفاده کردم و مشکلم حل شد.

درج میکنم تا اگر بقیه دوستان نیاز داشتند استفاده کنند :

 

    class Task extends AsyncTask<String, Integer, Boolean> {

 

        final ListView lstContent = (ListView) findViewById(R.id.lstContent);

        ProgressBar    PB         = (ProgressBar) findViewById(R.id.progressBar1);

 

 

        @Override

        protected void onPreExecute() {

            lstContent.setVisibility(View.GONE);

            PB.setVisibility(View.VISIBLE);

            super.onPreExecute();

        }

 

 

        @Override

        protected void onPostExecute(Boolean result) {

            PB.setVisibility(View.GONE);

            lstContent.setVisibility(View.VISIBLE);

            adapter.notifyDataSetChanged();

            super.onPostExecute(result);

        }

 

 

        @Override

        protected Boolean doInBackground(String... params) {

            adapter = new AdapterNote(G.resource);

            lstContent.setAdapter(adapter);

            barnamenevisi.this.params.add(new BasicNameValuePair("CoName", "barnamenevisi"));

 

            Commands.read(barnamenevisi.this.params);

            return null;

 

        }

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .