شرح ProgressDialog في الاندرويد

ProgressDialog  مع مثال في Android Studio

Android Progress Dialog هو واجهة مستخدم تعرض تقدم مهمة كما تريد أن ينتظر المستخدم حتى تكتمل المهمة السابقة المخططة ولهذا الغرض يمكنك استخدام مربع حوار التقدم . أفضل مثال هو ما تراه عند تنزيل أو تحميل أي ملف.

مثال على حوار التقدم في Android Studio

في هذا البرنامج التعليمي ، سأوضح كلاً من  مكون Ring and the Bar (أفقي) ProgressDialog ، وسأستخدم أيضًا الأدوات الخاصة مثل Handler لتحديث قيمة تنسيق الشريط.

  ProgressDialog progressDialog = new ProgressDialog(this);

طرق مهمة للتقدم الحوار ProgressDialog

طرق حوار التقدم في Android Studio
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); 

التقدم سبينر نمط الحوار في Android Studio
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.

 تحميل الكود

مثال على حوار التقدم في 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.