2011-07-28 13 views
0

それは私の文字列の配列アダプタでかなり問題があるようです。リスト内の項目を変更するだけの方法はないようです。文字列を削除して挿入し直して、変更が表示されるようにしなければなりませんでした。だから私の質問はなぜArrayAdapterはarraylistのようなsetメソッドを持たないのですか?リスト内の要素を変更する簡単な方法がないのはなぜですか?要素を変更するには、BaseAdapterに基づいてカスタムアダプタを作成するオプションですか?ArrayAdapterにarraylistのようなsetメソッドがないのはなぜですか?

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

MyAdapter myAdapter = new MyAdapter(items, context); 

あなたが使用してアイテムを変更することができます:

答えて

1

は、このサンプルコードを見ることができます

// 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'を覚えておいて、値を設定した後に 'if(converView == null){// do somthing} 'のように' null'チェックの外に値を設定してください。 –

+0

私はあなたが何を意味するか完全に理解していません。私は自分のアダプターを作ろうとは決してしませんでしたが、アダプターの中でセットを作ることができませんでしたか?そのようなadapter.setItem(位置、文字列)?内部の項目を変更したい場合は、自分のアダプタを作成する必要があるという良い気持ちがあります。私はちょうどそれが "はい"かどうかを知りたがっています。良い例がありますか? – Rushino

関連する問題