Android获取错误setListAdapter到自定义布局

时间:2014-08-23 14:49:58

标签: android android-layout android-fragments

我无法使用setListAdapter进行自定义布局。喜欢这段代码:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                inflater.getContext(), android.R.layout.simple_list_item_1,
                testArray);
        setListAdapter(adapter);
        return super.onCreateView(inflater, container, savedInstanceState);
    }

更改后android.R.layout.simple_list_item_1更改为R.layout.list_fragmen已解决并且没有收到任何错误。这两个文件都很相似。但我无法改变它。

simple_list_item_1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">


    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@android:id/text1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="center_vertical"
            />
    <ImageView
            android:id="@+id/icon"
            android:layout_width="22px"
            android:layout_height="22px"
            android:layout_marginLeft="4px"
            android:layout_marginRight="10px"
            android:layout_marginTop="4px"
            android:src="@drawable/abc_list_pressed_holo_light">
    </ImageView>

</LinearLayout>

list_fragment:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">


    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@android:id/text1"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="center_vertical"
            />
    <ImageView
            android:id="@+id/icon"
            android:layout_width="22px"
            android:layout_height="22px"
            android:layout_marginLeft="4px"
            android:layout_marginRight="10px"
            android:layout_marginTop="4px"
            android:src="@drawable/abc_list_pressed_holo_light">
    </ImageView>

</LinearLayout>

logcat结果:

08-23 14:48:25.366      435-435/ir.tsms E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
            at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)

1 个答案:

答案 0 :(得分:0)

修改

抱歉,我误解了你的问题。

如果您提供自定义布局,还需要提供将设置值的TextView的ID。

ArrayAdapter adapter = new ArrayAdapter<String>(inflater.getContext(),
        R.layout.list_fragment, R.id.text1, testArray);