Html'de select olarak; Asp.net'te de DropDownList olarak bildiğimiz ve kullanıcıya seçenekler arasından bir seçim yapma olanağı sunan Android aracına Spinner adı veriliyor. Bu yazımda da Spinner kullanımı ile ilgili iki basit kullanımı göstereceğim. Spinner'a seçenekler nasıl eklenir ve Spinner seçimi değiştirildiğinde seçili olan Spinner elemanı nasıl tespit edilir.
Örnek olarak para birimleri listesi sunan bir Spinner ekleyelim
activity_main.xml dosyası:
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/currency_spinner"
android:gravity="center_horizontal"
android:spinnerMode="dropdown"
android:dropDownSelector="@color/fontColour"
/>
strings.xml dosyası altında sakladığımız spinner seçenekleri:
<string-array name="currency_array">
<item>TRY</item>
<item>AUD</item>
<item>BRL</item>
<item>CAD</item>
<item>CNY</item>
<item>EUR</item>
<item>GBP</item>
<item>HKD</item>
<item>JPY</item>
<item>PLN</item>
<item>RUB</item>
<item>SEK</item>
<item>USD</item>
<item>ZAR</item>
</string-array>
MainActivity.java dosyasında bu iki dosyayı bind ettiğimiz adapter kodları:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.currency_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.currency_array, R.layout.spinner_item);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(adapter);
}
Şimdi de uygulamaya girerek seçili olan Spinner seçimini değiştirelim ve yeni seçtiğimiz para birimini logcat üzerinden görüntüleyelim:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Log.d("SpinnerUygulamasi", "seçili nesne: "+adapterView.getItemAtPosition(i));
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
Log.d("SpinnerUygulamasi", "Seçili eleman yok");
}
});
Sonuç: