全部 - 我有大量的Spinners,我想存储在列表/数组中,这样我就不必重写大量的代码了。我有大约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)
我甚至不知道这是否可行,但我要求否则这将是一个漫长的夜晚写重复代码:)。谢谢你的时间!
答案 0 :(得分:1)
将ID存储在数组中,如int
s。然后遍历它们以设置适配器。
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
设置为具有相同的适配器。