2

すべて-たくさんのコードを書き直す必要がないように、リスト/配列に保存したいスピナーがたくさんあります。私は同じ正確なコードを通過する約30のスピナーを持っています。30個のスピナーを配列リストに入れてから、コードで配列/リストを実行する方法を見つけようとしています。例:

Spinner spinner1 = (Spinner) findViewById(R.id.spinner);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
List<String> listOfSpinners= new ArrayList(); // This is the part I am not sure about                       
    listOfSpinners.add(spinner1);
    listOfSpinners.add(spinner2); 


    ArrayAdapter<String> adapterSpinner = new ArrayAdapter<String>(this,
                R.layout.spinnerlayout, infoInSpinner);


    adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
    listOfSpinners.setAdapter(adapterSpinner); //I want to use the list here (listOfSpinners)

これが可能かどうかさえわかりませんが、そうでなければ、繰り返しコードを書くのに長い夜になるでしょう:)。御時間ありがとうございます!

4

1 に答える 1

1

IDをintsとして配列に格納します。次に、それらをループしてアダプターを設定します。

ArrayList<Integer> listOfSpinners = new ArrayList<Integer>();
listOfSpinners.add(R.id.spinner);
listOfSpinners.add(R.id.spinner2); 

ArrayAdapter<String> adapterSpinner = new ArrayAdapter<String>(this,
            R.layout.spinnerlayout, infoInSpinner);

adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
for (Integer spinner : listOfSpinners) {
    // If you want multiple adapters, move the adapter code in here and alter it accordingly.
    ((Spinner) findViewById(spinner)).setAdapter(adapterSpinner);
}

このコードはテストしていませんが、問題なく動作するはずです。これにより、すべてSpinnerのが同じアダプタを持つように設定されることに注意してください。

于 2012-07-07T01:27:49.423 に答える