मैंने चंद्र लैंडर नमूना के आधार पर एक सरल एंड्रॉइड गेम बनाया है, और मुझे महत्वपूर्ण घटनाओं को संभालने में समस्या है। जब गतिविधि शुरू होती है, तो केडडाउन या ऑनकेप पर केवल एक ही कुंजी को डीपीएड अप/डाउन/बाएं/दायां कुंजी कहा जाता है। कोई भी मेनू, बैक, या dpad_center कुंजी पर लागू नहीं है। हालांकि, एक बार जब मैंने डीपीएड ऊपर/नीचे/बाएं/दाएं बटनों में से एक को धक्का दिया है, तो मेनू, बैक, या dpad_center कुंजी दबाकर इन विधियों को ट्रिगर करें। मुझे कोई गलती नहीं मिल रही है, या क्या गलत हो रहा है इसका कोई संकेत नहीं है।ऑनकेडाउन हमेशा एंड्रॉइड ऐप में नहीं कहा जाता है
यह संभव है कि फोकस गलत हो - गतिविधि स्क्रीन पर एक बटन से शुरू की गई है, इसलिए यह टचस्क्रीन मोड में हो सकती है। यदि ऐसा है, तो बैक बटन को छूना नहीं चाहिए मुझे सही फोकस मोड में ले जाना चाहिए ताकि मैं ईवेंट को पकड़ सकूं?
मैं एसडीके-1.5 आर 3 से एम्यूलेटर का उपयोग कर रहा हूं। मैं अभी तक एक असली फोन पर कोशिश करने में सक्षम नहीं हूं। यहाँ मेरा ऑनकाउन है।
public boolean onKeyDown(int keyCode, KeyEvent msg)
{
Log.d(TAG, "onKeyDown: " + keyCode);
return super.onKeyDown(keyCode, msg);
}
धन्यवाद
मैट
यह दृश्य में था - लेकिन यह जांचते समय, मुझे एहसास हुआ कि मैंने सेट फोकस करने योग्य इंटचोड मोड सक्षम नहीं किया है - यह समस्या को ठीक करने में जोड़ रहा है। –
आह, ठंडा। मुझे खेद है कि मुझे वास्तविक समस्या याद आई लेकिन मुझे खुशी है कि मैं मदद कर सकता हूं। – haseman
मैंने इसे एक टुकड़े में करने की कोशिश की लेकिन मेरे विचार के ऑनडाउन() को कभी भी कॉल नहीं किया गया, भले ही मैंने इसे सही करने की स्थिरता निर्धारित की हो: 'searchView.setFocusable (true); searchView.setFocusableInTouchMode (सही); '। हालांकि गतिविधि के ऑनकेडाउन() को बुलाया जाता है, लेकिन दुर्भाग्य से पिछली कुंजी के लिए नहीं। – faizal