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:entriesmembuatku 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 Objectyang Anda tahu adalah Stringsepertinya jalan yang lebih bundaran daripada hanya melemparkan Objectke 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();