2011-07-28 42 views
0

好吧,看来我的字符串arrayadapter遇到了一些麻烦。似乎没有真正的方法只修改列表中的项目。我必须删除并插回字符串才能看到更改。所以我的问题是为什么ArrayAdapter没有象arraylist那样的set方法呢?为什么它没有任何简单的方法来改变列表中的元素?为了更改元素,是否可以创建基于BaseAdapter的自定义适配器?为什么ArrayAdapter没有像arraylist那样的set方法呢?

回答

1

让我们看看这个示例代码:

ArrayList<String> items = new ArrayList<String>(); 

MyAdapter myAdapter = new MyAdapter(items, context); 

则可以使用修改的项目:

// items.set(索引,对象);

items.set(0,"Hello New Value"); 

myadapter.notifyDataSetChanged();// to tell the adapter there's new values has been changed 
+0

我将不得不尝试,但我认为我已经尝试过。它不会工作,我认为你需要设置适配器,因为它不知道你改变了列表。它似乎没有保留参考。当你将适配器设置回来时,它将删除任何不正确的结果。 – Rushino

+0

记得在'Adapter'的'getView'中,总是在'null'检查之外设置这个值,比如if(converView == null){// do somthing}'。 –

+0

我不完全明白你的意思。我从来没有试过制作我自己的适配器,但是你不能让适配器内部的设备?这样的adapter.setItem(位置,字符串)?我有一个很好的感觉,我将不得不创建我自己的适配器,如果我想修改一个项目里面..我只是想知道,如果这是“是”。你有什么好的例子吗? – Rushino

相关问题