Tôi có hai spinners (day_spin và time_spin) trong một Activity
. Tôi muốn lưu giá trị day_spin đã chọn vào một biến. Có thể phân biệt giữa hai spinners trong cùng một Listener
không? Hoặc tôi có phải viết riêng lớp học Listener
cho mỗi máy quay không?Android: hai Spinner onItemSelected()
Ngoài ra tôi muốn lấy số của mục đã chọn. Ví dụ tôi có String Array với 6 phần tử. Tôi chọn số 3. Làm thế nào tôi có thể nhận được id?
day_spin = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter_day = ArrayAdapter
.createFromResource(this, R.array.spinner_day_array,
android.R.layout.simple_spinner_item);
adapter_day
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
day_spin.setAdapter(adapter_day);
day_spin.setOnItemSelectedListener(this);
time_spin = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter_time = ArrayAdapter
.createFromResource(this, R.array.spinner_time_array,
android.R.layout.simple_spinner_item);
adapter_time
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
time_spin.setAdapter(adapter_time);
time_spin.setOnItemSelectedListener(this);
Đây là tôi Listener
:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
DAY = parent.getItemAtPosition(pos).toString();
TIME = parent.getItemAtPosition(pos).toString();
}
Tôi hy vọng bạn có thể giúp tôi!
Swith là cách tốt nhất, (nếu khác) là dành cho người mới – Cabezas
@Yaqub Thay vì typecasting, chúng ta có thể tận dụng của 'getId()' cuộc gọi trực tiếp. ví dụ, 'if (parent.getId() == spinnerView.getId()) {...}' – blizzard
là bạn có nghĩa là xin vui lòng: '' 'if (parent.getId() == R.id.spinner1)' '' – nyxee