مثال على Android ProgressDialog

مرحبًا بك في مثال Android ProgressDialog. في هذا البرنامج التعليمي ، سنتعلم كيفية إنشاء ProgressDialog في Android يحتوي على ProgressBar. سنناقش أيضًا الفرق بين ProgressDialog و ProgressBar بتفصيل كبير.

ProgressDialog في Android

ProgressDialog في Android هو تمديد لـ AlertDialog. لمعرفة المزيد عن AlertDialog ، تحقق من برنامج البرمجة التعليمي هنا. ProgressDialog في Android هو صندوق حوار / نافذة حوار تعرض تقدم مهمة. ProgressDialog في Android تقريبًا نفس ProgressBar باستثناء أنه يتم عرضه كصندوق حوار. لإنشاء ProgressDialog لعرض ProgressBar ، نحتاج إلى إنشائه بهذه الطريقة.

ProgressDialog progress = new ProgressDialog(this);

الفرق بين ProgressDialog في Android و ProgressBar

  1. ProgressBar هو عنصر عرض (مثل TextView و ImageView و Button ، إلخ) ، يمكن استخدامه في التخطيط لعرض بعض التقدم. يتم استخدام ProgressBar للإشارة إلى أن هناك شيئًا ما في التطبيق يتم تحميله بينما يمكن للمستخدم التفاعل مع أجزاء أخرى من التطبيق.
  2. ProgressDialog هو حوار مع ProgressBar المدمجة. يتم استخدام ProgressDialog عندما نريد منع المستخدم من التفاعل مع التطبيق أثناء الانتظار. يجمد الجانب الحواري المستخدم عن القيام بأي شيء حتى يتم إغلاقه.

سمات ProgressDialog في Android

يتم توفير بعض السمات المهمة لـ ProgressDialog في Android والتي يتم توضيحها أدناه.

  1. setMessage(): يستخدم هذا الأسلوب لعرض رسالة للمستخدم. مثال: جاري التحميل…
  2. setTitle(): يستخدم هذا الأسلوب لتعيين عنوان لمربع الحوار
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL): يستخدم هذا الأسلوب لعرض شريط التقدم الأفقي في مربع الحوار
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER): يستخدم هذا الأسلوب لعرض دائرة/شريط التقدم المتحرك في مربع الحوار
  5. setMax(): يستخدم هذا الأسلوب لتعيين القيمة القصوى
  6. getProgress(): يستخدم هذا الأسلوب للحصول على القيمة الحالية للتقدم بأرقام
  7. getMax(): يقوم هذا الأسلوب بإرجاع القيمة القصوى للتقدم
  8. show(Context context, CharSequence title, CharSequence message): هذا هو الأسلوب الثابت المستخدم لعرض مربع حوار التقدم.
  9. incrementProgressBy(int diff) : تقوم هذه الطريقة بزيادة شريط التقدم بفارق القيمة الممررة كمعلمة

في هذا البرنامج التعليمي سنقوم بتطوير تطبيق يعرض ProgressDialog يحتوي على ProgressBar أفقي يتزايد بعد كل 200 مللي ثانية.

بنية مشروع ProgressDialog لأندرويد

مثال على ProgressDialog لأندرويد

يحتوي ملف activity_main.xml على زر يستدعي ProgressDialog عند النقر عليه كما هو موضح في رمز XML أدناه: activity_main.xml

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Start ProgressDialog"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="57dp" />

</RelativeLayout>

يتم توفير ملف MainActivity.java أدناه. MainActivity.java

package com.journaldev.progressdialog;

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.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button button;
    ProgressDialog progressDoalog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDoalog = new ProgressDialog(MainActivity.this);
                progressDoalog.setMax(100);
                progressDoalog.setMessage("Its loading....");
                progressDoalog.setTitle("ProgressDialog bar example");
                progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDoalog.show();
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            while (progressDoalog.getProgress() <= progressDoalog
                                    .getMax()) {
                                Thread.sleep(200);
                                handle.sendMessage(handle.obtainMessage());
                                if (progressDoalog.getProgress() == progressDoalog
                                        .getMax()) {
                                    progressDoalog.dismiss();
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }

            Handler handle = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    super.handleMessage(msg);
                    progressDoalog.incrementProgressBy(1);
                }
            };
        });
    }
}

الكود التالي يُنشط المعالج الذي نكتب فيه الكود لزيادة شريط التقدم.

handle.sendMessage(handle.obtainMessage());

أدناه هو الفيديو الناتج عن تشغيل تطبيق مثال شريط التقدم في أندرويد في المحاكي. يشكل هذا نهاية درس مثال شريط التقدم في أندرويد. يمكنك تنزيل المشروع النهائي مشروع شريط التقدم في أندرويد من الرابط أدناه.

تحميل مشروع شريط التقدم في أندرويد

Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example