2010-03-23 10 views
18

स्थानीय डीबी से डेटा खींचा जा रहा है, फिर कर्सर का उपयोग करके मैप किया जाता है। कस्टम एडाप्टर एक सूची दृश्य के समान डेटा प्रदर्शित करता है। चूंकि आइटम डीबी से जोड़े/हटाए जाते हैं, इसलिए एडाप्टर को रीफ्रेश करना होता है। नीचे दिए गए समाधान ने लॉन्च पर एप्लिकेशन को दुर्घटनाग्रस्त कर दिया। कोई सुझाव?एंड्रॉइड: कस्टम लॉन्च एडाप्टर बेसएडप्टर को एप्लिकेशन लॉन्च पर क्रैश करता है

अग्रिम धन्यवाद, डी

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    ViewGroup p = parent;    
    if (v == null) { 
    LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    v = vi.inflate(R.layout.items_row, p); 
    } 
    int size = mAdapter.getCount(); 
    Log.d(TAG, "position " + position + " Size " + size); 
    if(size != 0){ 
    if(position < size) return mAdapter.getView(position, v, p); 
    Log.d(TAG, "-position " + position + " Size " + size); 
    } 
    return null; 
} 

अपवाद:

03-23 00:14:10.392: ERROR/AndroidRuntime(718): java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.widget.AdapterView.addView(AdapterView.java:461) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at com.xyz.abc.CustomSeparatedListAdapter.getView(CustomSeparatedListAdapter.java:90) 
... 

उत्तर

87
v = vi.inflate(R.layout.items_row, p); 

है कि कॉल करने के लिए एक false तीसरे पैरामीटर जोड़ें, और मुझे लगता है कि तुम्हारी समस्या दूर जाना होगा। कॉल हो जाना चाहिए: इस कोड

v = vi.inflate(R.layout.items_row, p, false); 
+6

एक साल बाद, इस टिप्पणी मैं अभी भी उपयोगी करने के लिए! धन्यवाद ^^ – davogotland

+1

हे भगवान! इसे पहले से स्वीकार करें! – DeeV

+1

यह जवाब है! मेरे पास पहले से ही यह समस्या थी लेकिन मैं थोड़ी देर के बाद से अतिरिक्त झूठे पैरामीटर डालना भूल गया था और यह सुनिश्चित करने के लिए पर्याप्त है कि यह ठीक है। – rushinge

7

परिवर्तन

v = vi.inflate(R.layout.items_row, p); 

v = vi.inflate(R.layout.items_row, null); 
+0

चेतावनी! गलत जवाब। कृपया देखें http://www.doubleencore.com/2013/05/layout-inflation-as-intended/ – seanpj

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