2010-08-30 18 views
11

मैंने गतिविधि में केडडाउन फ़ंक्शन पर उपयोग किया ..... लेकिन जब बैक बटन बटन क्लिक किया गया तो यह पहले डायलॉग बॉक्स को रद्द कर देता है और हमारी गतिविधि पर जाता है। ..मैं चाहते दोनों या तो दोनों गतिविधि और संवाद बॉक्स बंद कर दिया जब वापस बटन क्लिक करने या वापस बटन को निष्क्रिय जब संवाद बॉक्स दिखाया गया है ...जब स्क्रीन पर अलर्ट बॉक्स स्क्रीन पर है तो बैक बटन को अक्षम कैसे करें

किसी भी एक इस के लिए किसी भी समाधान का सुझाव कर सकते हैं ....

अग्रिम धन्यवाद,


अद्यतन

नमस्ते आपके उत्तर के लिए धन्यवाद। progressDialog.setCancelable(false); के साथ ठीक काम कर रहा है।

लेकिन यहां मुझे अलग-अलग चीज़ चाहिए। जब प्रगति संवाद चल रहा है तो मैं बैक कुंजी दबा दूंगा और मैं एक चेतावनी संवाद दिखाना चाहता हूं ताकि उपयोगकर्ता सूचित कर सके कि प्रगति चल रही है।

क्या इसके बारे में कोई समाधान है?

कृपया मेरी मदद करें।

अग्रिम धन्यवाद।

उत्तर

58

क्या आप इस

progressDialog.setCancelable(false); 
+10

- यह अलर्टडियलोग के साथ भी काम करता है ... बस अगर किसी को पता होना चाहिए। – dell116

2

तरह झूठी

कुछ करने के लिए अपने setCancelable() संपत्ति सेट करके देखें हो सकता है यह आपके मामले में मदद मिलेगी:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // Show your Alert Box here 
     } 
     return false; 
    } 
+0

आपके उत्तर के लिए धन्यवाद। यह मुद्दा बहुत समय पहले था। समय मिलने पर मैं कोशिश करूंगा। – gsmaker

+0

बस कभी देर से नहीं होने के लिए :) –

0

मैं सिर्फ @MoJo सुधार करना चाहते हैं उत्तर

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 

     @Override 
     public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
       //Your handler 


       return false; 
     } 
}); 
+0

फिर आप मेरा जवाब संपादित कर सकते थे –

0

व्यक्तिगत रूप से एक क्लीनर समाधान नई गतिविधि के बंडल में ध्वज सेट करने या किसी भी तरीके को ओवरराइड करने के बजाय इरादे शुरू करने से पहले लॉगिन एक्टिविटी को समाप्त करना था। नीचे इस तरह कुछ कोशिश करें जहां लॉगिन आपकी लॉगिन गतिविधि है और उपयोगकर्ता सफलतापूर्वक उपयोगकर्ता में लॉगिन करने के बाद पहली गतिविधि है।

finish(); 
Intent intent = new Intent(Login.this, Home.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 
0

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
    finish(); 
    return true; 
    } 
}); 

"या अक्षम वापस बटन पर संवाद बॉक्स में दिखाया गया है" यह संवाद से वापस जा रहा ब्लॉक कर सकते हैं "मैं दोनों या तो दोनों गतिविधि और संवाद बॉक्स को बंद कर दिया चाहते हैं"। जब यह गतिशील बनाने, जोड़ें:

dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
    return true; 
    } 
}); 

सच रिटर्निंग बंद करने से इस संवाद को रोकने है, और इसे वापस क्लिक करके बंद नहीं किया जा सकता है। इसके अलावा मैं सुझाव देता हूं:

dialog.setCanceledOnTouchOutside(false); 

उपयोगकर्ता को इसके बाहर क्लिक करके संवाद को खारिज करने से कैसे रोका जाएगा।

संबंधित मुद्दे