2012-02-15 11 views
8

yılında backKey basarak bir uyarı iletişim kutusunu kapatmak ve buBir kullanıcı kullanıcı geri tuşuna bastığında ben bir olay yakalamak için gereken Android

gibi bir kod var iletişim görevden çalıştığınızda bir olay nasıl yakalanır
AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create(); 
    alertDialog.setTitle("Caution"); 
    alertDialog.setMessage("Alert"); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
     finish(); 
    } }); 
    alertDialog.show(); 
} 

Şimdi burada kullanıcıya bir seçenek verdim, ama eğer arka tuşa basarsa başka bir işlem yapmam gerektiğini varsayalım.

+0

[Burada] [1] kabul edilen bir cevapla benzer bir sorudur. [1]: Hayır .. Ben uyarı iletişim bahsediyorum http://stackoverflow.com/questions/2000102/android-override-back-button-to-act-like-home-button – rics

+0

ve back key olayı ... BackKeyEvent hakkında biliyorum .... –

+0

Geri düğmeyi nasıl geçersiz kılacağınıza dair bir ipucuydu. Rajeel, uyarıya nasıl ekleneceğini açıklıyor. – rics

cevap

23

Bu size

alertDialog.setOnCancelListener(new OnCancelListener() { 
    public void onCancel(DialogInterface dialog) { 
     // Your code ...     
    } 
}); 
yardımcı olacaktır
0

Arka tuş olayını yönetmek için bir düğme oluşturun. Şimdi onClick etkinliğinin içinde aşağıdaki kodu sağlamaya çalışın.

back_key.setOnClickListener(new OnClickListener() 
{ 

     public void onClick(View v) 
     { 
      // Your Tracking Code 
     } 
}); 
Sen uyarısı ardından olay gerçek

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create(); 
    alertDialog.setTitle("Caution"); 
    alertDialog.setMessage("Alert"); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
     finish(); 
    } }); 
    isAlertShowing = true; // set to true for alert 
    alertDialog.show(); 
} 

bazı boolean hazır görünüyor geri tuşuna olayı yakalayabilir

1

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
 if (keyCode == KeyEvent.KEYCODE_BACK) 
       { 
           if(isAlertShowing) 
           { 
       // perform your task here 
      } 

       } 

       return super.onKeyDown(keyCode, event); 
} 
+0

Bu güzel bir yol ... Uyarı iletişim kutusunun olduğu herhangi bir dinleyiciyi düşünüyordum ... :) –

1

Özellikle işten çıkarma olayıyla ilgileniyor gibi görünen

da bulunmaktadır.

İlgili konular