2012-03-05 18 views
9

मैं अपने आवेदन में बैक बटन कार्यक्षमता को कार्यान्वित करना चाहता हूं। आवेदन में जब भी मैं मध्य में बैक बटन पर क्लिक कर रहा हूं, मेरा नियंत्रण सीधे लॉगिन पृष्ठ पर जा रहा है, तो क्या कोई मुझे बता सकता है कि onKeyDown() या onBackPressed() विधियों को ओवरराइड करना है?ऑनकेडाउन() या ऑनबैक दबाए गए()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

क्योंकि मैं onCreate के अंदर और भी onCreate बाहर इस लिख रहा हूँ, लेकिन यह काम नहीं कर रहा ......

+0

सामान्य में, 'OnKeyDown तरह के तरीकों()' बाहर लिखते हैं, या 'onBackPressed()' ओवरराइड होना चाहिए, (आप आईडीई, यानी, ग्रहण का लाभ ले सकते हैं, तो खूबसूरती से ऐसा करने के लिए) तो वे 'क्रिएट() 'से बाहर होना चाहिए। क्या आप अपनी समस्या को बिल्कुल समझा सकते हैं? क्या गलत है? – Huang

+0

इस उत्तर को देखें: http://stackoverflow.com/a/3558613/571353 – SERPRO

+1

फ़ंक्शन के ऊपर @ ओवरराइड जोड़ें ... ??? – mihail

उत्तर

7

किया जाए या नहीं आप पूर्व एंड्रॉयड 2.0 फोन का समर्थन करना चाहते पर निर्भर करता है। onBackPressed() विधि एंड्रॉइड 2.0 (एपीआई 5) में जोड़ा गया था।

आप जानकारी के लिए Android डेवलपर ब्लॉग पर इस पोस्ट को पढ़ने के लिए चाहते हो सकता है:

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

+0

धन्यवाद आदमी लेकिन इस विधि को कहां लिखना है ???? क्योंकि मैं इस विधि को अंदर लिखने की कोशिश कर रहा हूं और बाहर की ओर भी बनाएं, लेकिन अभी भी नियंत्रण विधि के अंदर नहीं जा रहा है, क्या आप सरल उत्तर से मेरी मदद कर सकते हैं ??? – user1249134

+0

धन्यवाद-आप सभी को .... :-))))) आप लोग शानदार हैं ............. – user1249134

3

हाँ आपको लगता है कि ओवरराइड कर सकते हैं वापस बटन

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

इस आप कर सकते हैं तक किसी भी गतिविधि पर ले जाएँ। यह बहुत आसान और सरल तरीका है

1

यदि आपकी चिंता इतिहास स्टैक से लॉगिन गतिविधि को हटाने के बारे में है।

निष्पादन निष्पादित करें(); जब आप

+0

3-05 14: 13: 56.327: डब्ल्यू/कीकैरैक्टर मैप (374) : डिफ़ॉल्ट कीमैप का उपयोग करना: /system/usr/keychars/qwerty.kcm.bin – user1249134

+0

हैलो दोस्तों मेरा नियंत्रण ऑनबैक विधि के अंदर नहीं आ रहा है? क्या कोई भी शरीर इसे पुन: सक्रिय करने में मदद कर सकता है ???? – user1249134

+0

इरादा संपादन = नया इरादा (getParent(), MyGroup.class); \t \t टैबग्रुप सक्रियता पैरेंटएक्टिविटी = (टैब ग्रुप एक्टिविटी) getParent(); \t \t parentActivity.startChildActivity ("संपर्क जोड़ें", संपादित करें); – user1249134

3

से कोई अन्य गतिविधि शुरू करते हैं तो अपनी लॉगिन गतिविधि में कोड नीचे देखें। onCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    } 
संबंधित मुद्दे