2013-04-05 11 views
10

कृपया, कोई भी सुझाव देता है कि PhoneGap के साथ काम करते समय मैं बैक बटन प्रेस ईवेंट को कैसे अक्षम कर सकता हूं?एंड्रॉइड DroidGap बैक बटन को अक्षम करने

मुझे बैक बटन ईवेंट को नियंत्रित करने के लिए मेरे Activity, (DroidGap कोड) में कुछ करने की आवश्यकता है।

यहां तक ​​कि, निम्न कोड मेरे Activity में अच्छी तरह से काम करता है, लेकिन DroidGap के साथ उपयोग किए जाने पर काम नहीं कर रहा है।

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR 
     return true; 
    } 
    return super.onKeyDown(keyCode, event);  
} 

उत्तर

7

appView पर setOnKeyListener कॉलिंग मुझे बाहर में मदद की। - Action Up &

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 

संपादित

वहाँ वास्तव में दो कार्रवाइयां कुंजी दबाने घटना होती है:

मैं सिर्फ इस प्रकार मेरे ऊपर कोड स्निपेट में एक मामूली परिवर्तन है, जो करना था Action Down

तो, मुख्य ईवेंट प्राप्त करने के लिए निम्नलिखित का उपयोग किया जाना चाहिए।

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
      // Do Here whatever you want 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 
+0

उसी समस्या ने कोड की कोशिश की, लेकिन इस घटना को दो बार निकाल दिया गया। – TechFanatic

+0

@PnestecDev: क्या आप अपने बैक बटन पर कुछ करने की कोशिश कर रहे हैं? – NarendraJi

+0

हां मैं बैक क्लिक पर पृष्ठों को नेविगेट करने का प्रयास कर रहा हूं। – TechFanatic

2

मेरे मामले में, मैं तो जैसे जावास्क्रिप्ट + jQuery का उपयोग करें:

$(document).on('backbutton', 
    function(e){ 

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

क्या है, कि मेरी गतिविधि कोड में किया जा सकता? – NarendraJi

+0

मेरे लिए काम नहीं करता है। जेक्यू 1.8.3 + एंड्रॉइड पर जेक्यूएम 1.3.2 (मोटोरोला रेजर) – Daniel

+0

यह काम नहीं करता है (जेक्यू v1.11.3) – JFouad

5

नरेंद्र के संस्करण से थोड़ा बेहतर। यह बैक बटन के ठीक से अन्य प्रेस के लिए कुंजी अप कॉल को संभाल सकता है। नीचे दिए गए कोड को उदाहरण के लिए ओवरराइड बनाएं।

appView.setOnKeyListener(new View.OnKeyListener() { 

     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_UP) { 
       if(keyCode == KeyEvent.KEYCODE_BACK) { 
        // Do Stuff Here 
        return true; 
       } 
       return onKeyUp(keyCode, event); 
      } 
      return onKeyDown(keyCode, event); 
     } 
    }); 
+0

यह एक अच्छा सुधारित कारावास है। धन्यवाद !!! – Rajaraman

0
// ************ stop the back button ***************** 

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
संबंधित मुद्दे