Android ArrayAdapter.Add方法不起作用该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (59)

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)

提问于
用户回答回答于

你可以尝试传递一个像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");

扫码关注云+社区