Android ArrayAdapter.Add方法不起作用

ArrayAdapter.add()方法不适合我。 我使用Eclipse Helios 3.6与ADT插件,Target Source是Froyo 2.2模拟器和2.2 HTC Evo 4g。 这是我的java类

import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String[] entries = {"List Item A", "List Item B"}; ArrayAdapter<String> arrAdapt=new ArrayAdapter<String>(this, R.layout.list_item, entries); arrAdapt.setNotifyOnChange(true); arrAdapt.add("List Item C"); } } 

这里是我的布局列表项(list_item.xml)

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:padding="10dp" android:textSize="12sp" </TextView> 

这是给我和LogCat说错误

由java.util.AbstractList.add(AbstractList.java:411)在java.util.AbstractList.add(AbstractList.java:432)上的android.widget.ArrayAdapter.add(ArrayAdapter.java)引发java.lang.UnsupportedOperationException :178)

Solutions Collecting From Web of "Android ArrayAdapter.Add方法不起作用"

我只是在学习,但如果我正确读取源 ,ArrayAdapter的构造函数不会复制引用到数组或列表中的每个元素。 相反,它直接使用传入的列表,或者数组使用asList()将原始数组视为列表。 由于asList()返回的列表仍然只是底层数组的表示,所以不能对数组做任何事情(如resize)。

尝试传递一个像ArrayList而不是一个数组的列表。

 ArrayList<String> entries = new ArrayList<String>(Arrays.asList("List Item A", "List Item B")); ArrayAdapter<String> arrAdapt= new ArrayAdapter<String>(this, R.layout.list_item, entries); arrAdapt.setNotifyOnChange(true); arrAdapt.add("List Item C");