java.lang.IllegalStateException:ArrayAdapter需要资源ID为TextView

我试过这个教程http://windrealm.org/tutorials/android/android-listview.php “一个简单的Android ListView示例”

但在我的testing中,我在Android应用程序崩溃。

在LogCat中,我有这样的:

04-11 20:17:24.170: E/AndroidRuntime(7062): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 

为什么会崩溃?

java类

 private ListView mainListView; private ArrayAdapter<String> listAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mains); mainListView = (ListView) findViewById(R.id.mainListView); String[] xRemote = Remote.split(";"); ArrayList<String> planetList = new ArrayList<String>(); planetList.addAll(Arrays.asList(xRemote)); listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, planetList); listAdapter.addAll(xRemote); mainListView.setAdapter(listAdapter); 

mains.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/mainListView"> </ListView </LinearLayout> 

simplerow.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/rowTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" android:textSize="16sp" > </TextView> </LinearLayout> 

使用

 listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, R.id.rowTextView, planetList); 

该文件说:

默认情况下,这个类需要提供的资源id引用一个TextView。 如果您想使用更复杂的布局,请使用也需要字段ID的构造函数。 该字段ID应该引用较大的布局资源中的TextView。

在simplerow.xml中,移除LinearLayout并直接使用TextView作为根