我有9個具有相同功能的spinners,輸入值爲int數組。我無法通過'for'設置onItemSelectedListener在spinner數組中循環
因此,我用'for'Loop編寫代碼。我認爲這很有效。但它沒有奏效。
當我執行這個並檢查微調器時,int數組沒有改變。
如何使用'for'Loop將值輸入到int數組中?
//global
int num;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, items);
spinner[] spinner;
spinner = new Spinner[9];
int[] values;
values = new int[9];
for(int i = 0; i < 9; i++){
spinner[i] = new Spinner(this);
spinner[i] = (Spinner) findViewById(spinnerId[i]);
spinner[i].setAdapter(adapter);
values[i] = 0;
}
//OnItemSelectedListener
for(int i = 0; i < 9; i++){
num++;
spinner[i].setOnItemSelectedListener(new
AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
values[num] = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
這是因爲當onItemSelected方法所謂的num等於t 9.試着改變'values [num] = position;'To:'final int finalNum = num; values [finalNum] = position;' – RobVoisey
不確定它的有效性,如果它不起作用,請告訴我,我將把它變成答案。如果沒有,您需要遍歷Spinner數組以找到已被按下的那個。 – RobVoisey
你是否動態生成Spinner? –