注意ArrayAdapter的Add()方法

时间:2023-03-08 22:42:26

ArrayAdapter类可以作为ListView等的适配器资源,并且可以动态向适配器中添加新的数据,这就是ArrayAdapter.Add()方法的作用。但是在使用该方法时如果出错,那就需要检查ArrayAdapter构造方法中的参数T[] objects了,如果这个参数设置成了固定大小的数据类型的话,是不能完成添加的。这个Add()方法其实是在向这个参数中动态添加数据,而如果这个参数大小固定,添加时会出现异常。

举个例子:

 //创建ListView对象
ListView mylv = new ListView(this);
//要显示的数据
String[] str = new String[] {"Hello", "World"};
//创建Adapter
ArrayAdapter arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_expandable_list_item_1,
str);
mylv.setAdapter(arrayAdapter);
setContentView(mylv); //this.arrayAdapter.add("!");

这样也就可以显示ListView了,但是想要动态添加数据的话就会出现异常,原因是字符串数组str是一个定长的数组,它不可以动态添加一条字符串,也即第13行的代码运行时会出错。所以推荐使用List类,因为他可以动态添加数据。