2

データで満たされた ArrayLists がたくさんあります。私がしたいのは、配列リストを使用してスピナーを設定することだけです。他の SO の質問では、人々は独自のアダプターを作成し、ArrayList をフィールドとして保存しますが、私はそれを行う必要はありません。

スピナーにデータを入力したいだけです。これほど簡単なものはないと思いますが、似ているものはありますか

mySpinner.populate( myList );
4

2 に答える 2

4

組み込みのArrayAdapterを使用するだけで、カスタム Adapter を作成する必要はありません。

List<String> list = new ArrayList<String>();
// Fill list with strings
...

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);

使用しているデータ型を指定しませんが、それは問題ではありません: ArrayAdapter のサブタイプを<Integer><Double>、またはカスタム クラスに簡単に変更でき<Kittens>ます (カスタム クラスを toString() メソッドに定義している限り)。

于 2012-08-16T14:53:29.663 に答える
1

ArrayAdaptersadd()内部リストに物を保存する方法があります。独自に作成する必要はありません。次のようなことを試してください:

for(Object ob : yourArrayList)
    <arrayAdapter>.add(ob);
<arrayAdapter>.notifyDataSetChanged();

Objectあなたが使用しているコレクションに変更しますList

于 2012-08-16T14:56:11.793 に答える