2012-08-26 7 views
7

मेरा ऐप NativeActivity का उपयोग कर पूरी तरह से सी/सी ++ में लिखा गया है, इसमें जावा कोड नहीं है ("मूल गतिविधि" एनडीके उदाहरण के आधार पर)। "बैक" बटन दबाकर इसे बंद कर दिया जाता है (गतिविधि को नष्ट कर देता है), लेकिन मुझे इस बटन के अन्य बीहाइवर की आवश्यकता है क्योंकि मेरे पास अपना यूआई और मेनू है जो ओपनजीएल के माध्यम से प्रदर्शित होता है।एंड्रॉइड एनडीके: जावा के बिना मूल सक्रियता में बैकप्रेस पर ओवरराइड कैसे करें?

As I read, "बैक" बटन के बीहाइवर को बदलने के लिए, मुझे जावा गतिविधि वर्ग की onBackPressed() विधि को ओवरराइड करने की आवश्यकता है। लेकिन मैं जावा का उपयोग नहीं करता, क्या मैं इस विधि को सी/सी ++ से ओवरराइड करने के लिए एक्सेस कर सकता हूं?

यदि नहीं, तो जावा कोड के बिना एनडीके, का उपयोग करके "बैक" बटन को संभालने का कोई और तरीका है?

+0

NativeActivity एक जावा वर्ग है !! और आपने कहा कि आप इसका उपयोग कर रहे हैं !!, तो आप इसके अंदर बैकप्रेस पर ओवरराइड कर सकते हैं? –

+0

नहीं, मेरा मतलब है कि मैं इसे "मूल-गतिविधि" एनडीके उदाहरण में उपयोग कर रहा हूं: android_native_app_glue.h, 'struct android_app' आदि। –

उत्तर

12

हल: डिफ़ॉल्ट बटन को रोकने के लिए "वापस" behaivor यह 1 वापस जाने के लिए है, जबकि महत्वपूर्ण घटना से निपटने के लिए पर्याप्त है:

int32_t app_handle_event(struct android_app* app, AInputEvent* event) { 
    if (AKeyEvent_getKeyCode(event) == AKEYCODE_BACK) { 
     // actions on back key 
     return 1; // <-- prevent default handler 
    }; 
    // ... 
    return 0; 
} 
संबंधित मुद्दे