Di Android, saya mencoba untuk mendapatkan nilai Spinner yang dipilih dengan pendengar.
Apa cara terbaik untuk mendapatkan nilai pemintal?
Di Android, saya mencoba untuk mendapatkan nilai Spinner yang dipilih dengan pendengar.
Apa cara terbaik untuk mendapatkan nilai pemintal?
Jawaban:
Spinner mySpinner = (Spinner) findViewById(R.id.your_spinner);
String text = mySpinner.getSelectedItem().toString();
Spinner harus menjalankan acara "OnItemSelected" ketika sesuatu dipilih:
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) {
}
});
Katakan ini adalah xml Anda dengan entri pemintal (mis. Judul) dan nilai:
<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>
dan ini adalah pemintal Anda:
<Spinner
android:id="@+id/size_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/size_entries" />
Kemudian dalam kode Anda untuk mendapatkan entri:
Spinner spinner = (Spinner) findViewById(R.id.size_spinner);
String size = spinner.getSelectedItem().toString(); // Small, Medium, Large
dan untuk mendapatkan nilai:
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
membuatku bahagia.
Ya, Anda dapat mendaftarkan pendengar melalui setOnItemSelectedListener()
, seperti yang ditunjukkan di sini .
Jika Anda sudah tahu item tersebut adalah String
, saya lebih suka:
String itemText = (String) mySpinner.getSelectedItem();
Memanggil toString()
sebuah Object
yang Anda tahu adalah String
sepertinya jalan yang lebih bundaran daripada hanya melemparkan Object
ke String
.
tambahkan setOnItemSelectedListener ke referensi pemintal dan dapatkan data seperti itu`
mSizeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
selectedSize=adapterView.getItemAtPosition(position).toString();