ProgressDialog مع مثال في Android Studio
Android Progress Dialog هو واجهة مستخدم تعرض تقدم مهمة كما تريد أن ينتظر المستخدم حتى تكتمل المهمة السابقة المخططة ولهذا الغرض يمكنك استخدام مربع حوار التقدم . أفضل مثال هو ما تراه عند تنزيل أو تحميل أي ملف.
في هذا البرنامج التعليمي ، سأوضح كلاً من مكون Ring and the Bar (أفقي) ProgressDialog ، وسأستخدم أيضًا الأدوات الخاصة مثل Handler لتحديث قيمة تنسيق الشريط.
ProgressDialog progressDialog = new ProgressDialog(this);
طرق مهمة للتقدم الحوار ProgressDialog
1. setTitle ( CharSequence title) - يُستخدم هذا المكون لتعيين عنوان مربع حوار التقدم ProgressDialog .
// Setting Title progressDialog.setTitle("ProgressDialog");
2. setMessage ( CharSequence message) - يعرض هذا المكون الرسالة المطلوبة في مربع حوار ProgressDialog .
// Setting Message progressDialog.setMessage("Loading...");
3. setProgressStyle (ProgressDialog.STYLE_HORIZONTAL) - يُستخدم هذا لتعيين النمط الأفقي لمربع حوار ProgressDialog .
// Progress Dialog Style Horizontal progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
4. setProgressStyle (ProgressDialog.STYLE_SPINNER) - يُستخدم هذا لتعيين نمط الزيادة والنقصان لمربع حوار ProgressDialog .
// Progress Dialog Style Spinner progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
5. setMax (int max) - تحدد هذه الطريقة القيمة القصوى لمربع حوار التقدم.
// Progress Dialog Max Value progressDialog.setMax(100);
6. getMax () - تُرجع هذه الطريقة القيمة القصوى لمربع حوار التقدم ، وتُستخدم هذه الطريقة أساسًا أثناء تطبيق الشرط على مربع حوار التقدم.
// Fetching max value progressDialog.getMax();
7. getProgess () - يؤدي ذلك إلى إرجاع التقدم الحالي لمربع حوار التقدم بشكل رقمي.
// Fetching current progress progressDialog.getProgress();
8. incrementProgressBy (int diff ) - تزيد هذه الطريقة من قيمة حوار التقدم بالقيمة المحددة.
// Incremented By Value 2 progressDialog.incrementProgressBy(2);
9. setCancelable ( boolean cancelable ) - تحتوي هذه الطريقة على قيمة منطقية مثل true / false. إذا تم التعيين على خطأ ، فإنه يسمح بإلغاء مربع الحوار عن طريق النقر فوق منطقة خارج مربع الحوار الافتراضي ، يكون صحيحًا إذا لم يتم استخدام الطريقة.
// Cannot Cancel Progress Dialog progressDialog.setCancelable(false);
10. dismiss() - ترفض هذه الطريقة الحوار التقدمي .
//Dismiss the dialog progressDialog.dismiss();
مثال على حوار التقدم ProgressDialog في Android Studio
فيما يلي مثال على مربع حوار التقدم الذي يتم فيه تحديد وظيفة ProgressDialog عبر النقر فوق الأزرار. في هذا المثال ، استخدمنا أزرارًا بسيطة وفوق هذا الزر ، سيظهر مربع حوار التقدم ProgressDialog .
يمكنك أدناه تنزيل الكود ، والاطلاع على الإخراج النهائي والشرح خطوة بخطوة لمثال ProgressDialog في Android Studio.
تحميل الكود
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته ProgressDialogExample .
الخطوة 2: افتح res -> layout -> activity_main. xml (أو) main. xml وأضف الكود التالي:
حدد هنا زرين
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.progessdialogexample.MainActivity" android:elevation="1dp"> <Button android:text=" Click To View Ring Progress Dialog..." android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="171dp" android:id="@+id/button" style="@android:style/Widget.DeviceDefault.Button.Inset" android:textStyle="normal|bold" android:textSize="15sp" android:textColor="@android:color/background_dark" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <Button android:text=" Click To View Progress Dialog..." android:layout_width="wrap_content" android:layout_height="wrap_content" style="@android:style/Widget.DeviceDefault.Button.Inset" android:layout_marginTop="49dp" android:textSize="15sp" android:id="@+id/button2" android:textStyle="normal|bold" android:textColor="@android:color/background_dark" android:layout_below="@+id/button" android:layout_centerHorizontal="true" /> </RelativeLayout>
الخطوة 3: الآن افتح التطبيق -> java -> package -> MainActivity. جافا وإضافة الكود أدناه.
في هذا أضفنا وظيفة حوار التقدم ProgressDialog على الزر ، انقر فوق وجود onclicklistener. اثنين من الأزرار على حد سواء يتم عرض نوع مختلف من الحوار التقدم الذي تم تعيين باستخدام setProgressStyle أي الدوار أو شريط أفقي.
package com.example.progessdialogexample; import android.app.ProgressDialog; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button b1, b2; ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button) findViewById(R.id.button); b2 = (Button) findViewById(R.id.button2); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setMessage("Loading..."); // Setting Message progressDialog.setTitle("ProgressDialog"); // Setting Title progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // Progress Dialog Style Spinner progressDialog.show(); // Display Progress Dialog progressDialog.setCancelable(false); new Thread(new Runnable() { public void run() { try { Thread.sleep(10000); } catch (Exception e) { e.printStackTrace(); } progressDialog.dismiss(); } }).start(); } }); b2.setOnClickListener(new View.OnClickListener() { Handler handle = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); progressDialog.incrementProgressBy(2); // Incremented By Value 2 } }; @Override public void onClick(View v) { progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setMax(100); // Progress Dialog Max Value progressDialog.setMessage("Loading..."); // Setting Message progressDialog.setTitle("ProgressDialog"); // Setting Title progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // Progress Dialog Style Horizontal progressDialog.show(); // Display Progress Dialog progressDialog.setCancelable(false); new Thread(new Runnable() { @Override public void run() { try { while (progressDialog.getProgress() <= progressDialog.getMax()) { Thread.sleep(200); handle.sendMessage(handle.obtainMessage()); if (progressDialog.getProgress() == progressDialog.getMax()) { progressDialog.dismiss(); } } } catch (Exception e) { e.printStackTrace(); } } }).start(); } }); } }
المخرجات :
الآن ابدأ تشغيل AVD في Emulator وقم بتشغيل التطبيق. سترى زران . انقر عليها وشاهد ProgressDialog المختلفة في android.