Trong Android, tôi đang cố gắng để có được giá trị Spinner đã chọn với người nghe.
Cách tốt nhất để có được giá trị của spinner là gì?
Trong Android, tôi đang cố gắng để có được giá trị Spinner đã chọn với người nghe.
Cách tốt nhất để có được giá trị của spinner là gì?
Câu trả lời:
Spinner mySpinner = (Spinner) findViewById(R.id.your_spinner);
String text = mySpinner.getSelectedItem().toString();
Spinner sẽ kích hoạt sự kiện "OnItemSelected" khi có thứ gì đó được chọn:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Object item = parent.getItemAtPosition(pos);
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
Giả sử đây là xml của bạn với các mục nhập spinner (ví dụ: tiêu đề) và các giá trị:
<resources>
<string-array name="size_entries">
<item>Small</item>
<item>Medium</item>
<item>Large</item>
</string-array>
<string-array name="size_values">
<item>12</item>
<item>16</item>
<item>20</item>
</string-array>
</resources>
và đây là spinner của bạn:
<Spinner
android:id="@+id/size_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/size_entries" />
Sau đó, trong mã của bạn để có được các mục:
Spinner spinner = (Spinner) findViewById(R.id.size_spinner);
String size = spinner.getSelectedItem().toString(); // Small, Medium, Large
và để có được các giá trị:
int spinner_pos = spinner.getSelectedItemPosition();
String[] size_values = getResources().getStringArray(R.array.size_values);
int size = Integer.valueOf(size_values[spinner_pos]); // 12, 16, 20
android:entries
làm cho ngày của tôi
Có, bạn có thể đăng ký một người nghe qua setOnItemSelectedListener()
, như được trình bày ở đây .
Nếu bạn đã biết mục này là a String
, tôi thích:
String itemText = (String) mySpinner.getSelectedItem();
Gọi toString()
vào một Object
cái mà bạn biết String
có vẻ như là một con đường vòng hơn là chỉ truyền Object
đến String
.
thêm setOnItemSelectedListener để tham chiếu spinner và nhận dữ liệu như thế`
mSizeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
selectedSize=adapterView.getItemAtPosition(position).toString();