【发布时间】:2011-07-28 11:08:36
【问题描述】:
好吧,我的字符串数组适配器似乎有些麻烦。似乎没有真正的方法可以只修改列表中的项目。我必须删除并重新插入字符串才能看到更改出现。所以我的问题是为什么 ArrayAdapter 没有像 arraylist 这样的 set 方法呢?为什么它没有任何简单的方法来更改列表中的元素?为了更改元素,可以选择基于 BaseAdapter 创建自定义适配器?
【问题讨论】:
好吧,我的字符串数组适配器似乎有些麻烦。似乎没有真正的方法可以只修改列表中的项目。我必须删除并重新插入字符串才能看到更改出现。所以我的问题是为什么 ArrayAdapter 没有像 arraylist 这样的 set 方法呢?为什么它没有任何简单的方法来更改列表中的元素?为了更改元素,可以选择基于 BaseAdapter 创建自定义适配器?
【问题讨论】:
让我们看看这个示例代码:
ArrayList<String> items = new ArrayList<String>();
MyAdapter myAdapter = new MyAdapter(items, context);
您可以使用以下方法修改项目:
// items.set(index,object);
items.set(0,"Hello New Value");
myadapter.notifyDataSetChanged();// to tell the adapter there's new values has been changed
【讨论】:
getView中的Adapter,总是在null检查之外设置值,就像if(converView==null){//do somthing}在它设置值之后。