<?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" >
<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/ic_launcher" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="20px" >
</TextView>
</LinearLayout>
上面是我的布局“messages.xml
”
public class TabClass extends ListFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] values = new String[] { "label1", "label2", "label3"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
R.layout.messages, values);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// Do something with the data
}
}
当我尝试编译应用程序时出现此错误 "ArrayAdapter requires the resource ID to be a TextView"
最佳答案
您的 messages.xml 包含带有 ImageView 和 TextView 的 LinearLayout。相反,它应该只包含一个 TextView。请参阅文档 here 。 ArrayAdapter 构造函数的第二个参数采用:
The resource ID for a layout file containing a TextView to use when instantiating views.
提示:您可能想要创建一个自定义适配器类(它扩展了 BaseAdapter)而不是 ArrayAdapter 类。
关于java - ArrayAdapter 要求资源 ID 为 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526222/