2011-04-15 5 views
12

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

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back. 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

लेकिन जबकि चल रहा है जब मैं एमुलेटर पर बटन वापस प्रेस यह गतिविधि अपडेट हो जाता है, लेकिन जब मैं बटन वापस दबाने यह एक के मुख पृष्ठ के लिए स्विच एम्यूलेटर .. कृपया सुझाव दें कि उनकी कोई अन्य विधि

+1

आप इनमें से किसी भी विधि 'प्रेषणकेवेन्ट', 'ऑन बैकप्रेस', 'ऑनकेडाउन' पर ओवरराइड कर सकते हैं। अधिक के लिए [इस उत्तर] (https://stackoverflow.com/a/44714357/6521116) का संदर्भ लें। –

उत्तर

62
@Override 
public void onBackPressed() { 
    // do nothing. 
} 
+0

हाँ .. यह विधि अच्छी तरह से काम करती है .. thanx – Sam

+0

मैंने अभी @Override सार्वजनिक शून्य पर बैकप्रेस() { // कुछ भी नहीं किया है। वापसी; } और अब इरादे लागू करके मैं उस पृष्ठ पर स्विच कर सकता हूं जहां मैं – Sam

+0

चाहता हूं धन्यवाद, यह आपको भी मदद करता है:) – Dimitri

6

क्या आपने बैकप्रेस() पर प्रयास किया था?

@Override 
public void onBackPressed() { 
     // Do as you please 
} 
3

यह मेरा समाधान है यह Android 2.2

ओवरराइड का उपयोग कर काम करता है onBackPressed() ...

public void onBackPressed() { 
    // check if you are in the right mode 
    if (getCurrentState() == FORM_STATE_BROWSE) { 
     // ok do default back action 
     super.onBackPressed(); 
    } 

    // exit skipping "onBackPressed()" 
    return; 
} 
16
@Override 
     public void onBackPressed() { 
      //super.onBackPressed(); 
      if(SOME_CONDITION_TO_CHECK){ 
       //THIS BLOCK WILL NOT DO ANYTHING AND WOULD DISABLE BACK BUTTON 

      }else{ 
       super.onBackPressed(); 
//THIS BLOCK WILL BE CALLED IF ABOVE COND IS FALSE, AND WOULD ENABLE BACK BUTTON 
      } 

     } 
1

अगर आप कुछ गतिविधि पर ले जाना चाहते हैं जैसा बैक बटन दबाकर, अपनी गतिविधि में इस विधि को ओवरराइड करें

@Override 
    public void onBackPressed() { 
     // do nothing. 
     Intent intent = new Intent(SocialPlugIns.this, MainActivity.class); 
     Log.i("Hello", "This is Coomon Log"); 
     startActivity(intent); 
      return; 
    } 
2

आप सभी उपकरणों पर काम को सफलतापूर्वक में इस के लिए आदेश में वापसी को जोड़ना होगा, मेरी टिप्पणी 3 & एचटीसी अभी भी अगर मैं वापसी शामिल नहीं है वापस जाने के लिए!

@Override 
     public void onBackPressed() { 
      return; 
     } 
+0

यह बहुत अजीब लगता है क्योंकि जावा किसी भी वापसी के बीच कोई अंतर नहीं देख सकता है और इस मामले में वापस लौट सकता है। वापसी विधि को कुछ भी नहीं कर रही है। – JohnyTex

+0

बस जो हुआ वह पोस्ट करना, मेरे पास तकनीकी कारण नहीं है। – Petro

0

आपको onBackPressed() फ़ंक्शन ओवरराइड करना होगा। नीचे मैं एक रास्ता दे रहा हूं:

@Override 
    public void onBackPressed() { 
     //make some alert for the user 
    }