2013-04-23 10 views
8

की मैं एक कस्टम सरणी एडाप्टर लागू किया और है, हालांकि एप्लिकेशन ठीक काम करता है, लेकिन मैं जब सुपर लाइन पर इस त्रुटि मिलती है:अनियंत्रित कॉल ArrayAdapter

ArrayAdapter (संदर्भ, पूर्णांक, टी [] को अनियंत्रित कॉल) कच्चे प्रकार के एक सदस्य Android.Widget.ArrayAdapter

यह मेरा कस्टम ArrayAdapter है के रूप में:

class MyArrayAdapter extends ArrayAdapter { 

    public MyArrayAdapter(Context context, int textViewResourceId, Object[] objects) 
    { 
     super(context, textViewResourceId, objects); 
    } 
    . 
    . 
    . 

सुपर त्रुटि के रूप में प्रकाश डाला गया है।

मैं इसे कैसे ठीक कर सकता हूं?

+0

सटीक मुद्दा जो मैं सामना करना पड़ा। कृपया मेरे संदेह को साफ़ करने पर विचार करें जिसे मैंने उत्तर में टिप्पणी अनुभाग में पूछा था। – Pravin

उत्तर

16

बदलें करने के लिए अपने वर्ग घोषणा:

class MyArrayAdapter extends ArrayAdapter<Object> 

वैसे Object से कुछ अधिक विशिष्ट उपयोग करने पर विचार - यह बहुत आप के लिए और अधिक सुविधाजनक हो जाएगा।

+0

इसे स्ट्रिंग में बदल दिया, धन्यवाद। – Ali

+0

ऑब्जेक्ट में इसे बदलकर, मेरी चेतावनी ठीक हो गई है। मैंने getItem() विधि को देखा जो रिटर्न प्रकार के रूप में "ऑब्जेक्ट" है। मेरा संदेह यह है कि, अगर हम ArrayAdapter क्लास का विस्तार करते हैं तो हमें getItem() विधि से अपेक्षित आउटपुट प्राप्त होता है। क्षमा करें यह एक लंगड़ा सवाल है। मैं इस के लिए बहुत नया हूँ। – Pravin

+0

@ प्रवीण मुझे पूरी तरह से आपका प्रश्न नहीं मिला। –

2

यदि आप ArrayAdapter class पर एक नज़र डालें, तो यह एक सामान्य class है। तो आपको यह निर्दिष्ट करना होगा कि किस प्रकार के डेटा आपके एडाप्टर के माध्यम से छेड़छाड़ किए जाएंगे। उदाहरण के लिए, आप स्ट्रिंग्स में हेरफेर करता है, तो:

class MyArrayAdapter extends ArrayAdapter<String> { 
// 
} 
संबंधित मुद्दे