هیچ دوره ای در سبد آموزش شما وجود ندارد
نوار پیشروی با استفاده از ProgressDialog اندروید
صفحه نخستProgress bar ها برای نشان دادن میزان پیشرفت یک فعالیت (task) به کار می روند.
وقتی که شما در حال بار گذاری (آپلود) یا دانلود کردن چیزی از اینترنت هستید، بهتر است که پیشروی بار گذاری یا دانلود (progress of download/upload) به یوزر نمایش داده شود. نوار پیشروی با استفاده از ProgressDialog اندروید چیست؟
در اندروید کلاسی به نام ProgressDialog وجود دارد که به شما امکان ایجاد Progress bar را می دهد. برای انجام این کار باید یک آبجکت از این کلاس را به عنوان نمونه در نظر بگیرید، که سینتکس آن مانند زیر می باشد :
ProgressDialog progress = new ProgressDialog(this);
حالا می توانیم برخی از ویژگی های این دیالوگ، از جمله استایل و متن آن را تنظیم کنیم :
progress.setMessage("Downloading Music :) "); progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progress.setIndeterminate(true);
علاوه بر این متد ها، متد های دیگری وجود دارند که توسط گروه ProgressDialog ارائه می شوند :
شماره | متد و توضیحات |
1 | ()getMax
این متد بیش ترین مقدار یک progress را گزارش می دهد. |
2 | (incrementProgressBy(int diff
این متد Progress bar را بر اساس میزان اختلاف ، که به عنوان پارامتر عبور کرده اند، افزایش می دهد. |
3 | (setIndeterminate(boolean indeterminate
این متد نشانگر Progress را به عنوان معین (determinate) یا نامعین، تنظیم می کند. |
4 | (setMax(int max
این متد بیشترین مقدار یک progress dialog را تنظیم می کند. |
5 | (setProgress(int value
این متد برای آپدیت progress dialog با چند مقدار مشخص، استفاده می شود. |
6 | (show(Context context, CharSequence title, CharSequence message
این متد یک متد استاتیک می باشد که برای نمایش progress dialog استفاده می شود. |
مثال
این مثال استفاده ی افقی از progress dialog را نشان می دهد که در واقع یک Progress bar می باشد. این مثال یک Progress bar را بر اساس کلیک روی دکمه نشان می دهد.
برای انجام مثال لازم است آن را روی یک دستگاه حقیقی، پس از توسعه ی اپلیکیشن ، اجرا کنید، طبق مراحل زیر :
مرحله | توضیحات |
1 | برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان ProgressDialog تحت بسته ی com.example. progressdialog نام گذاری کنید |
2 | فایل src/MainActivity.java را برای افزودن کد پیشروی و نمایش دیالوگ پیشروی spinning، تغییر دهید. |
3 | فایل res/layout/activity_main.xml را برای افزودن کد XML مربوطه تغییر دهید. |
4 | فایل res/values/string.xml را برای افزودن یک پیام به عنوان یک رشته ی ثابت، تغییر دهید. |
5 | برنامه را اجرا کنید، یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید. |
محتوای تغییر یافته ی src/MainActivity.java :
package com.example.sairamkrishna.myapplication; import android.app.ProgressDialog; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends ActionBarActivity { Button b1; private ProgressDialog progress; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.button2); } public void download(View view){ 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(); } }
محتوای تغییر یافته ی فایل
res/layout/activity_main.xml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" android:text="Progress bar" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point" android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:textSize="35dp" android:textColor="#ff16ff01" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Download" android:onClick="download" android:id="@+id/button2" android:layout_marginLeft="125dp" android:layout_marginStart="125dp" android:layout_centerVertical="true" /> </RelativeLayout>
محتوای پیش فرض AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
می خواهیم اپلیکیشن نوار پیشروی با استفاده از ProgressDialog اندروید را اجرا کنیم ؛ فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از اندروید استودیو ، یکی از فایل های اکتیویتی پروژه را باز کرده و روی آیکون Run از نوار ابزار کلیک کنید. قبل از شروع اپلیکیشن شما، اندروید استودیو پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد :
موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را چک کنید که صفحه ی زیر را نمایش خواهد داد.
اکنون دکمه را فشار دهید تا Progress bar شروع به کار کند. پس از فشار دادن دکمه صفحه ی زیر نمایش داده خواهد شد
این برنامه به طور مداوم خود را آپدیت می کند.