【问题标题】:LayoutInflater throwing exceptionsLayoutInflater 抛出异常
【发布时间】:2014-04-16 10:43:20
【问题描述】:

我有一个用于 listView 的自定义适配器。当我尝试膨胀一些 View 时,它会引发异常。这是我的getView() 代码:

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;
}

行View row = mInflater.inflate(R.layout.items_list_element, parent);抛出这个:

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 不为空。

【问题讨论】:

标签: android android-arrayadapter layout-inflater


【解决方案1】:

改变

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

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

【讨论】:

    【解决方案2】:

    试试下面的代码:-

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

    【讨论】:

      猜你喜欢
      • 2013-05-24
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多