Java ArrayAdapter要求资源ID为TextView

Java ArrayAdapter要求资源ID为TextView,java,android,Java,Android,我在尝试编译应用程序时遇到此错误“ArrayAdapter要求资源ID为TextView”您的messages.xml包含带有ImageView和TextView的线性布局。相反,它应该只包含一个TextView。请参阅文档。ArrayAdapter构造函数的第二个参数采用: 包含文本视图的布局文件的资源ID,在 实例化视图 提示:您可能想要创建一个自定义适配器类(它扩展了BaseAdvor),而不是ArayAdvor类。@ Balky考虑用所有链接张贴一个注释: <?xml versio

我在尝试编译应用程序时遇到此错误“ArrayAdapter要求资源ID为TextView”

您的messages.xml包含带有ImageView和TextView的线性布局。相反,它应该只包含一个TextView。请参阅文档。ArrayAdapter构造函数的第二个参数采用:

包含文本视图的布局文件的资源ID,在 实例化视图


提示:您可能想要创建一个自定义适配器类(它扩展了BaseAdvor),而不是ArayAdvor类。

@ Balky考虑用所有链接张贴一个注释:
<?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> 
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

      }

}