آموزش ProgressDialog یا دیالوگ پیشرفت در اندروید
سلام دوستان عزیزم این بار با آموزش ProgressDialog یا دیالوگ پیشرفت در اندروید در خدمت شما هستیم از ProgressDialog ها یا Progress بار برای نمایش یک پیشرفت به کاربر استفاده می شود به زبان ساده اگر شما درحال دانلود یک فایل از سرور خود هستید یک ProgressDialog به کاربر نمایش می دهید تا روند پیشرفت یا همان دانلود فایل شما را نمایش دهد در ادامه با ما همراه باشید.
برای اینکه یک ProgressDiloag بسازیم باید ابتدا آن را از کلاس ProgressDialog فراخوانی کنیم همانند زیر
1 | ProgressDialog progress = new ProgressDialog(this); |
و Propery یا ویژگی های مختلفی دارد که در پایین در مورد آنها بحث خواهیم کرد.
1 2 3 | progress.setMessage("Downloading Music :) "); progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progress.setIndeterminate(true); |
همان طور که در بالا مشاهده می کنید از setMessage برای قرار دادن یک پیام برای کاربر استفاده شده است و setProgressStyle هم برای نوع (شکل ظاهری که به کاربر نمایش داده خواهد شد) استفاده می شود و دو نوع است STYLE_HORIZONTAL و STYLE_VERTICAL و به ترتیب برای نمایش یک PROGRESS افقی یا عمودی استفاده می شود و در آخر setINDETERMINATE هم که مقدار ورودی آن از نوع Boolean است برای این است که مقدار داخلی progress بار به صورت اتوماتیک با توجه به مثلا دانلود یک فایل پر شود.
جدا از گفته های بالا یکسری Property دیگر وجود دارد
1 | getMax() |
این ویژگی بیشترین مقدار یک ProgressDialog را بر می گرداند.
1 | setMax(int max) |
این ویژگی بیشترین مقدار Progress را تغییر می دهد.
1 | setProgress(int value) |
مقدار progress را می توان با استفاده از ویژگی بالا تغییر داد.
دوستان تعداد ویژکی های ProgressDialog بسیار زیاد است و از حوصله این بحث خارج است ولی ما به یکسری از آنها پرداختیم در پایین هم یک نمونه از آن را برای شما قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | progress=new ProgressDialog(this); progress.setMessage("Downloading Music"); progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progress.setIndeterminate(true); progress.setProgress(0); progress.show(); final int totalProgressTime = 100; final Thread t = new Thread() { @Override public void run() { int jumpTime = 0; while(jumpTime < totalProgressTime) { try { sleep(200); jumpTime += 5; progress.setProgress(jumpTime); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; t.start(); } |
آموزش به پایان رسید .
موفق باشید.
سلام ممنون عالی بود
چطور میتونم کاری بکنم که مثلا در حین انجام کار این دیالوگ انجام بشه و پیشرفت رو نشون بده؟؟
مثلا پیشرفت دریافت اطلاعات از دیتابیس رو نمایش بده …
؟؟؟
سلام و درود
برای اینکه برای دیتابیس progressDialog نمایش بدید باید یک کلاس Async داشته باشید تا بتونید بررسی کنید چه میزان از اطالاعت دریافت شده و در کلاس Async همزان با شروع مثلا خواندن اطلاعات Progress را نمایش دهید سپس در متود onPostExecute مربوط به Async دیالوگ پیشرفت را hidden کنید.