2011-07-28 41 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

相關問題