Пример Android ProgressDialog
Добро пожаловать в пример Android ProgressDialog. В этом уроке мы узнаем, как создать диалоговое окно Android Progress, содержащее ProgressBar. Также мы подробно обсудим разницу между ProgressDialog и ProgressBar.
Диалоговое окно прогресса Android
Android ProgressDialog — это расширение AlertDialog. Чтобы узнать больше об AlertDialog, ознакомьтесь с его учебным пособием здесь. Android ProgressDialog — это диалоговое окно/диалоговое окно, в котором отображается ход выполнения задачи. Android Progress Dialog почти такой же, как ProgressBar, за исключением того, что он отображается в виде диалогового окна. Чтобы создать ProgressDialog для отображения ProgressBar, нам нужно создать его экземпляр следующим образом.
ProgressDialog progress = new ProgressDialog(this);
Разница между Android ProgressDialog и ProgressBar
- ProgressBar — это представление (например, TextView, ImageView, Button и т. д.), которое можно использовать в макете для отображения прогресса. ProgressBar используется, чтобы указать, что что-то в приложении все еще загружается, в то время как пользователь все еще может взаимодействовать с другими частями
- ProgressDialog — это диалоговое окно со «встроенным» ProgressBar. ProgressDialog используется, когда мы хотим предотвратить взаимодействие пользователя с приложением во время ожидания. Аспект Dialog запрещает пользователю выполнять какие-либо действия до тех пор, пока диалог не будет закрыт.
Атрибуты Android ProgressDialog
Некоторые важные атрибуты Android ProgressDialog приведены ниже.
- setMessage(): этот метод используется для отображения сообщения пользователю. Пример: Загрузка…
- setTitle(): этот метод используется для установки заголовка диалогового окна.
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL): этот метод используется для отображения горизонтального индикатора выполнения в диалоговом окне.
- setProgressStyle(ProgressDialog.STYLE_SPINNER): этот метод используется для отображения в диалоговом окне кругового/вращающегося индикатора выполнения.
- setMax(): этот метод используется для установки максимального значения.
- getProgress(): этот метод используется для получения текущего значения прогресса в цифрах.
- getMax(): этот метод возвращает максимальное значение прогресса.
- show(Context context, CharSequence title, CharSequence message): это статический метод, используемый для отображения диалогового окна прогресса.
- incrementProgressBy(int diff) : этот метод увеличивает индикатор выполнения на разницу значений, переданных в качестве параметра.
В этом руководстве мы разработаем приложение, которое отображает ProgressDialog, содержащий горизонтальный индикатор ProgressBar, который увеличивается каждые 200 миллисекунд.
Структура проекта Android ProgressDialog
Пример Android 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());
Скачать проект Android ProgressDialog