2013-09-03 11 views
6

से अंतिम विधि को ओवरराइड नहीं कर सकता है। मैं एक्शनबैरशेलॉक से एक्शनबैर कॉम्पैक्ट लाइब्रेरी में माइग्रेट करने की प्रक्रिया में हूं जो Google IO 2013 में पेश किया गया था (मैं ऐसा करता हूं इसलिए मैं एक्शनबार ड्रावर टॉगल का उपयोग कर सकता हूं)।एक्शनबार एक्टिविटी

मैंने पहले से ही सभी आवश्यक निर्भरताओं (AppCompat, नवीनतम समर्थन लाइब्रेरी ...) को हल किया है, सभी आयातों को ठीक किया है, लेकिन अब जब मैं एक्शनबैरएक्टिविटी के onMenuItemSelected का उपयोग करने का प्रयास करता हूं तो मुझे एक त्रुटि मिलती है।

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    ... 
} 

त्रुटि:

Cannot override the final method from ActionBarActivity

ActionBarActivity से मूल विधि (FragmentActivity से विरासत में मिली) अंतिम है। जब मैंने एबीएस का इस्तेमाल किया, यह काम कर रहा था, अब मैं विधि को ओवरराइड नहीं कर सकता।

(MenuItem वर्ग android.view.MenuItem की है और नहीं compat संस्करण ...)

मैं कुछ याद आ रही है?

उत्तर

11

onMenuItemSelected का उपयोग करने के बजाय मैंने onOptionsItemSelected का उपयोग किया और कोड ठीक से संकलित किया गया।

क्या यह onMenuItemSelected दस्तावेज़ों में दिखाई दे सकता है लेकिन कोड में नहीं?

+3

अपने प्रश्न का उत्तर देने के लिए: नहीं, 'android.support.v7.app.ActionBar' विधि' पर 'मेन्यूइटेम चयन' कोड में है, लेकिन यह ** अंतिम ** विधि है, और आप 'ओवरराइड' नहीं कर सकते ** अंतिम ** विधियों। – Stigi

+0

खेद है कि मैंने वहां गलत टाइप किया है, और इसे संपादित करने में देर हो चुकी है। बेशक मेरा मतलब था 'android.support.v7.ActionBarActivity'। – Stigi

+0

@ स्टिगी आप सही हैं लेकिन यह अजीब है, क्योंकि एबीएस का उपयोग करके मैंने इसे ओवरराइड किया और इसे अंतिम रूप में भी परिभाषित किया गया है। सुनिश्चित नहीं है कि इसका उद्देश्य क्या है यदि इसे ओवरराइड न करें ... – Michael

संबंधित मुद्दे