2014-04-16 31 views
1

我有一個listView自定義適配器。當我嘗試膨脹一些View時,會引發異常。這裏是我的getView()代碼:LayoutInflater拋出異常

public View getView(int position, View convertView, ViewGroup parent){ 
    View row = mInflater.inflate(R.layout.items_list_element, parent); 
    CheckBox cb = (CheckBox)row.findViewById(R.id.gotItCheckBox); 
    String checked = String.valueOf(cb.isChecked()); 
    return row; 
} 

行觀列= mInflater.inflate(R.layout.items_list_element,父母);拋出:

04-16 10:37:59.135  625-625/com.grizeldi.gShopper E/AndroidRuntime﹕ FATAL EXCEPTION: main 
java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView 
     at android.widget.AdapterView.addView(AdapterView.java:461) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:416) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
     at com.grizeldi.gShopper.adapter.getView(adapter.java:21) 
     at android.widget.AbsListView.obtainView(AbsListView.java:1430) 
     at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 
     at android.widget.ListView.onMeasure(ListView.java:1127) 
     at android.view.View.measure(View.java:8313) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
     at android.view.View.measure(View.java:8313) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
     at android.view.View.measure(View.java:8313) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
     at android.view.View.measure(View.java:8313) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
     at android.view.View.measure(View.java:8313) 
     at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
     at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:3683) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
     at dalvik.system.NativeStart.main(Native Method) 

任何人都知道發生了什麼事?

編輯:我已確定mInflater不爲空。

+0

日誌說: java.lang.UnsupportedOperationException:addView(查看,的LayoutParams)不在AdapterView中支持 重複: http://stackoverflow.com/questions/10253506/expandablelistview-unsupportedoperationexception-addviewview-layoutparams-i – QVDev

回答

1

變化

View row = mInflater.inflate(R.layout.items_list_element, parent); 

View row = mInflater.inflate(R.layout.items_list_element, parent, false); 
+0

它的工作原理,謝謝。 – grizeldi

+0

10分鐘,我會接受它。 – grizeldi

+0

不用客氣 – Blackbelt

0

試試下面的代碼: -

View row=null; 
       if (row == null) 
       { 
        LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
        row = inflater.inflate(layoutResourceId, parent, false); 
       }