我无法使用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)
答案 0 :(得分:0)
修改强>
抱歉,我误解了你的问题。
如果您提供自定义布局,还需要提供将设置值的TextView的ID。
ArrayAdapter adapter = new ArrayAdapter<String>(inflater.getContext(),
R.layout.list_fragment, R.id.text1, testArray);