2

全部 - 我有大量的 Spinner,我想将它们存储在列表/数组中,这样我就不必重写大量代码。我有大约 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);
}

我还没有测试过这段代码,但它应该可以正常工作!请记住,这会将所有Spinners 设置为具有相同的适配器。

于 2012-07-07T01:27:49.423 回答