2015-09-30 19 views
5

Navigasyon çekmecesi ve nav çekmecesi üzerinden ulaştığım birçok parça var.Parçada geri alınamaz iletişim kutusunu kapat backPress - Android

Bu parçaların bazılarında arka planda görevler yapılırken "Yükleme .." yazan bir iletişim kutusu gösteriyorum.

Şimdi, iletişim kutularını dialog.setCancelable(false) tarafından iptal edilemedim, böylece kullanıcı ekranın herhangi bir yerini tıklatarak yanlışlıkla reddedemez. Bu, telefon geri düğmesine basıldığında bile iptal edilemez hale getirir.

Dialog dialog = new Dialog(context); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.custom_progress_dialog); 
    ((TextView)dialog.findViewById(R.id.custom_dialog_message)).setText("Loading ..."); 

    dialog.setCancelable(false);  
    dialog.show(); 

Ben yükleme iletişim kutusunu kapatmak ve telefon geri düğmesi herhangi bir fragman sırasında basıldığında önceki parçasına gitmek için kod yazmak gerekir -

Bu

benim iletişim için bir kod.

Birisi bana yardımcı olabilir mi? Çoğunlukla bir fragmana özgü backPress uygulamasına ihtiyacım var. Teşekkürler!

cevap

6

Eğer getFragmentManager().popBackStackImmediate();

dialog.setOnKeyListener(new Dialog.OnKeyListener() { 
     @Override 
     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
      // TODO Auto-generated method stub 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       dialog.dismiss(); 
       getFragmentManager().popBackStackImmediate(); 
      } 
      return true; 
     } 
    }); 
+0

Teşekkür kullanabilirsiniz. İyi çalıştı! – Mallika

+0

benim zevkim .... –

6

bu

dialog.setOnKeyListener(new Dialog.OnKeyListener() { 
     @Override 
     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
      // TODO Auto-generated method stub 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       dialog.dismiss(); 
      } 
      return true; 
     } 
    }); 
5

kodunuzu hattını sökün olarak Çok basit:

dialog.setCancelable(false); 

ve bunu koymak ve bu ile

dialog.setCanceledOnTouchOutside(false); 

deneyin yanlışlıkla kullanıcı eğer iletişim iptal olmaz Ekrana dokunun, ancak kullanıcı geri düğmesine basarsa

Ekleme önceki parçasına geri dönmek için