kodbankasi http://kodbankasi.org/kodbankasi

Android Spinner kullanımı

Merhaba, bugun android form elemanlarından biri olan spinner’ı göreceğiz. Spinner açılır liste şeklinde seçim olanağı sağlar. Spinner’ın içerisini veri tabanında çekilen verilerle veya oluşturduğumuz diziler gibi static veriler ile doldurabiliriz. Yazdığım kodlarda spinner’ın içerisini xml dosyasında oluşturduğum dizi ile dolduruyorum.Yeni bir xml dosyası oluşturup içerisine aşağıdaki diziyi yaratıyoruz.

<string-array name="dizi">
<item>Pazartesi</item>
<item>Salı</item>
<item>Çarşamba</item>
<item>Perşembe</item>
<item>Cuma</item>
<item>Cumartesi</item>
<item>Pazar</item>
</string-array>

Daha sonra spinner’ı kullanacağımız layout’a spinner ekliyeceğiz.

activity_main.xml

<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:drawSelectorOnTop="true" >
</Spinner>

Şimdi class içinde kodlarımızı yazmaya başlıyoruz ilk olarak Spinner nesnesi oluşturuyoruz.Ve bunu class değişkeni olarak yapmanızı öneririm.Daha sonra yazıdığım kodlar şu şekilde;

spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

ilk satırda spinner’ı tanıtıyoruz. İkinci satırda bir arrayadapter olusturup veriyi çekiyoruz. Arrayadapter ‘in ilk paremetresi içerik yani context ikincisi çekiceğimiz veri ,ücüncü parametre ise spinner’ın görüntüsüdür.
Ücüncü satırda ise spinner’ın dropdown halindeki görüntüsünü belirliyoruz.Son satırdada setAdapter ile adapterimizi spinnera yüklüyoruz.Kodların tamamı aşağıdaki gibidir.

public class MainActivity extends Activity {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.dizi,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Log.i("uyarı",String.valueOf(arg2));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
} }

spinner

Bir önceki yazımız olan Javada ++ ve -- operatörleri başlıklı yazımızı da inceleyebilirsiniz.

17 Yorumlar

  1. selam,
    spinnerdan bir bilgiyi seçip butona bastığımda bir webview’e yönlendirmek istiyorum ama bir türlü olmadı yardımcı olurmusnuz ?

    ör: facebook seçtiğim zaman facebook’a yönelsin twitter seçtiğim zaman da twitter’in sayfasına gitsin gibi….

    • Merhaba,

      Bunu yapabilmek için onItemSelected metodunda seçilen id ye göre işlem yapmanız gerekiyor. Bunu da bu metodun içerisinde aşağıdaki gibi basit if-else döngüsü ile yapabilirsiniz.

      if(parent.getItemIdAtPosition(pos)==0){
      //index “0” ile başlamalıdır.
      //spinnerdaki ilk değer seçildiğinde yapılacaklar
      }else if(parent.getItemIdAtPosition(pos)==1){
      //spinnerdaki ikinci değer seçildiğinde yapılacaklar
      }else if(parent.getItemIdAtPosition(pos)==2){
      //spinnerdaki üçüncü değer seçildiğinde yapılacaklar
      }else if(parent.getItemIdAtPosition(pos)==3){
      //spinnerdaki dördüncü değer seçildiğinde yapılacaklar
      }

      Umarım yardımcı olabilmişimdir.

  2. Güzel ve anlaşılır bir örnek olmuş.

  3. Peki çarşambayı tıkladıktan sonra herhangi bir işlem yapmak gerekse kodları nereye yazacağız ?

  4. Tarık Kapıcı

    Güzel makale ve basit anlatım. Android derslerinizi çok beğeniyorum ve takip ediyorum. En yakın zamanda JSON ve veritabanı ile makalelerinizi bekliyorum.

  5. Merhaba admin ben bir uygulama geliştiriyorum spinnerde arıza kodları yazıcak tıklayınca textviewde çözümü yazacak yardimci olursan sevinirim.simdiden teşekkürler

    • Tam olarak nasıl bir yardım istiyorsunuz acaba ? Takıldığınız bir yer varsa ve buradan yazarsanız sorunu beraber çözelim herkese faydası olsun. Daha sonra benzer bir sorunda kaynak oluşturmuş oluruz.

  6. Harikasın admin

  7. Ahmet Naci Can

    Kodbankasına bu paylaşımı için çok teşekkür ederim ama hocam benim sormak istediğim bir şey var android için bir sürü ders ve dökğman paylaşıyorsunuz bunun bir kısmınıda İOS için paylaşabilirmisiniz rica ersem ios geliştirmek istiyorum şimdiden çok teşekkürler.

  8. merhabalar öncelikle , spinner içindeki itemların renklerini nasıl değiştirebiliriz , yardımcı olursanız sevinirim , şimdiden teşekkürler

    • custom adaptor oluşturman lazım görünüm sistemde tanımlı aapter için bir görünüm layoutu seçiyoruz bizde customda kendimiz bir layout oluşturup onu gosterek istediğimiz değişiklikleri yapabilirz

  9. Merhaba, öncelikle paylaşım için çok teşekkür ederim. Zira Android Studio ile kodlama bilgisi bulmak zor.. Benim sorum Spinner kullandık ve sizin yaptığınız gibi Haftayı günlere böldük.. Sonra butona bastığımızda mesaj göndereceğiz diyelim ki benim sorunum buradan sonra başlıyor,butona bastıktan sonra bu spinnerın öndeğeri boş gelsin istiyorum..
    Örnek ;

    arama.setText(“”);

    AutocompleteTextview de içini boşaltabiliyorum fakat aynı şeyi spinner için yapamadım… Yardımlarınızı bekliyorum… Saygılar

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Bu yazı da ilginizi çekebilir !

Modem Wifi şifresi Değiştirme

Ev veya işyerlerine yeni bağlatılan internet hatlarına genel olarak karmaşık bir şifre veya oldukça basit ...