Uygulama sunucudan yanıt beklerken bir yükleme çarkını göstermenin en iyi yolu nedir?
Bu programlı olarak yapılabilir mi? Yük döndürücüyü xml dosyasına eklememe gerek kalmaması için mi?
Uygulama sunucudan yanıt beklerken bir yükleme çarkını göstermenin en iyi yolu nedir?
Bu programlı olarak yapılabilir mi? Yük döndürücüyü xml dosyasına eklememe gerek kalmaması için mi?
Yanıtlar:
ProgressDialog , Android Oreo'da kullanımdan kaldırılmıştır. Kullanım ProgressBar yerine
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();
VEYA
ProgressDialog.show(this, "Loading", "Wait while loading...");
Daha fazlasını buradan okuyun.
Bu arada, Spinner'ın Android'de farklı bir anlamı var. (HTML'deki seçme açılır menüsü gibidir)
progress.setCancelable(false);
.
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.html'de
ProgressDialog, API Seviye 26 https://developer.android.com/reference/android/app/ProgressDialog.html'den bu yana kullanımdan kaldırıldı
Düzenime bir ProgressBar ekliyorum
<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" />
ve görünürlüğünü .GONE olarak değiştirin | .Kullanım durumuna göre GÖRÜNÜR.
progressBar_cyclic.visibility = View.VISIBLE
Kullanım ProgressDialog
ProgressDialog.show(Context context, CharSequence title, CharSequence message);
Ancak bu, bugün (2013) bir anti model olarak kabul edilmektedir: http://www.youtube.com/watch?v=pEGWcMTxs3I
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.html'de
Aslında bir sunucudan yanıt bekliyorsanız, bunun programlı olarak yapılması gerekir . Bir ilerleme diyaloğu oluşturabilir ve onu kapatabilirsiniz, ancak yine de bu "android yolu" değildir.
Şu anda önerilen yöntem bir DialogFragment kullanmaktır :
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;
}
}
Ardından etkinliğinizde Parça yöneticinizi ayarlarsınız ve sunucu bekleme başladığında iletişim kutusunu gösterirsiniz :
FragmentManager fm = getSupportFragmentManager();
MySpinnerDialog myInstance = new MySpinnerDialog();
}
myInstance.show(fm, "some_tag");
Sunucunuz tamamlandığında yanıt verdiğinde, onu kapatacaksınız:
myInstance.dismiss()
İlerleme iletişim kutusunun niteliklere bağlı olarak bir döndürücü veya ilerleme çubuğu olduğunu unutmayın, api kılavuzunda daha fazlasını okuyun
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.html'de
Bunu böyle yaptım, böylece bir seferde yalnızca bir ilerleme iletişim kutusu açılabilir. Suraj Bajaj'ın cevabına dayanarak
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();
}
}
Ben de kullanmak zorundaydım
protected void onResume() {
dismissLoadingDialog();
super.onResume();
}
ProgressDialog
Android O developer.android.com/reference/android/app/ProgressDialog.html'de