回答:
ProgressDialogはAndroid Oreoから非推奨になりました。代わりにProgressBarを使用してください
ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("Loading");
progress.setMessage("Wait while loading...");
progress.setCancelable(false); // disable dismiss by tapping outside of the dialog
progress.show();
// To dismiss the dialog
progress.dismiss();
または
ProgressDialog.show(this, "Loading", "Wait while loading...");
ちなみに、SpinnerはAndroidでは別の意味を持っています。(これはHTMLの選択ドロップダウンのようなものです)
progress.setCancelable(false);
。
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.htmlで
APIレベル26以降、ProgressDialogは非推奨になりました https://developer.android.com/reference/android/app/ProgressDialog.html
レイアウトにProgressBarを含めます
<ProgressBar
android:layout_weight="1"
android:id="@+id/progressBar_cyclic"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="40dp"
android:minWidth="40dp" />
そして、その可視性を.GONE |に変更します。ユースケースによっては.VISIBLE。
progressBar_cyclic.visibility = View.VISIBLE
使用する ProgressDialog
ProgressDialog.show(Context context, CharSequence title, CharSequence message);
ただし、これは今日(2013)のアンチパターンと見なされます。http://www.youtube.com/watch?v = pEGWcMTxs3I
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.htmlで
実際、サーバーからの応答を待っている場合は、プログラムで行う必要があります。進捗ダイアログを作成して閉じることもできますが、それでも「Androidの方法」ではありません。
現在推奨されている方法は、DialogFragmentを使用することです。
public class MySpinnerDialog extends DialogFragment {
public MySpinnerDialog() {
// use empty constructors. If something is needed use onCreate's
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
_dialog = new ProgressDialog(getActivity());
this.setStyle(STYLE_NO_TITLE, getTheme()); // You can use styles or inflate a view
_dialog.setMessage("Spinning.."); // set your messages if not inflated from XML
_dialog.setCancelable(false);
return _dialog;
}
}
次に、あなたの活動に、あなたのフラグメントマネージャを設定し、表示し始めたサーバーの待機一度ダイアログ:
FragmentManager fm = getSupportFragmentManager();
MySpinnerDialog myInstance = new MySpinnerDialog();
}
myInstance.show(fm, "some_tag");
サーバーが完全に応答したら、それを閉じます。
myInstance.dismiss()
プログレスダイアログは属性に応じてスピナーまたはプログレスバーであることに注意してください。APIガイドで詳細を読んでください
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.htmlで
このようにして、一度に1つの進行状況ダイアログしか開くことができませんでした。Suraj Bajajからの回答に基づく
private ProgressDialog progress;
public void showLoadingDialog() {
if (progress == null) {
progress = new ProgressDialog(this);
progress.setTitle(getString(R.string.loading_title));
progress.setMessage(getString(R.string.loading_message));
}
progress.show();
}
public void dismissLoadingDialog() {
if (progress != null && progress.isShowing()) {
progress.dismiss();
}
}
私も使用しなければなりませんでした
protected void onResume() {
dismissLoadingDialog();
super.onResume();
}
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.htmlで