Tasarım Kodlama

Android Spinner ile Çalışma

Spinner‘ların ne olduğu ve nasıl çalıştıkları hakkında zaten bilgi sahibi oldunuz. Öyleyse bir örneğe bakalım ve onu Android Uygulamamızda nasıl uygulayabileceğimizi öğrenelim.

Bu eğitimde, bağımsız iki Spinner ile çalışan bir uygulama oluşturacağız. Uygulamanın ana düzeni, bir TextView ve alt bileşen görünümleri olarak iki Spinner içerecektir. Bu nedenle, bir Spinnerin TextView’un altına yerleştirildiği ve diğer spinnerin ilk spinnerin altına yerleştirildiği düzeni (aşağıdaki resimde gösterilen) özelleştirmemiz gerekiyor.

İkinci Spinner içindeki seçenekler, ilk Spinnerda ne seçtiğimize bağlı olacağından, başlangıçta ikinci spinner gizlenecek ve yalnızca kullanıcı ilk spinnerdan bir seçenek seçtiğinde görünecektir.

İkinci spinner , isVisible eşittir GONE özelliğine sahiptir; bu, düzende var olduğu, ancak görünür olmayacağı (veya gizleneceği) anlamına gelir.

Bu nedenle, aşağıdaki resimde, orada değil gibi görünüyor. Ancak orada olup olmadığını görmek için isVisible değerini VISIBLE olarak değiştirmeyi deneyebilirsiniz. Ama sonra şimdilik GONE olarak değiştirin.

İlk Spinner(classSpinner) kullanıcı tarafından seçilecek iller listesini ve bu seçime göre değerleri ikinci Spinner(divSpinner) a atayacağız. Kullanıcı ikinci spinner’dan da bir opsiyon seçtiğinde, bir Tost oluşturacağız ve seçilen değerleri ekranda görüntüleyeceğiz.

Öyleyse başlayalım, burada düzen XML dosyasına sahibiz. İsterseniz, yerel makinenizde bu örnekle başlamak için aşağıdaki XML’i kopyalayıp yapıştırın.

main_activity.xml

NOT: Bunda bir hata alıyorsanız, bunun nedeni aşağıdaki veri XML dosyasını henüz oluşturmamış olmanızdır. Bunu oluşturduktan sonra, bu dosyadaki hata çözülecektir.
Gördüğünüz gibi, xml dosyası içinde bir kaç özelliğin yanı sıra bir TextView ve iki Spinner görünümüne sahibiz.

Spinner öğe eklemek için, ona bir dizi seçenek sunmanın iki olası yolu vardır. Bir dizi bildirerek ve içindeki öğeleri tanımlayarak. Ancak bu örnek için diğer yolu deneyeceğiz, yani bir XML kullanarak.

Aşağıda strings.xml dosyasında gösterdiğimiz gibi XML’de bir string dizisi tanımlayabiliriz. Android’de, strings.xml dosyamız gibi veri XML dosyalarını app → res → değerler → strings.xml içine koymalıyız.

string.xml

Şimdiye kadar, aşağıdaki şeylerle işimiz bitti:

  • 1 TextView ve 2 Spinner‘a sahip olacak olan Android Uygulamamızda oluşturduğumuz tasarımı anladık.
  • Kullanıcı arayüzü için layout XML’i tanımladık.
  • Ayrıca Spinnerlar için veri setimizi tanımladık.

Veri kümemizde, öğeleri açılır listede görüntülemek için iller adlı string dizisi spinnerIller‘e atanacaktır.

Bu girişleri spinnere eklemek için tek yapmamız gereken, main_activity düzeni XML dosyasına android:entries="@array/iller" özelliğini eklemek. Bunu yapmak, iller dizisinde bulunan değerleri spinnerIllere atayacaktır.

Kullanıcının ilk spinnerdaki seçeneği seçmesine bağlı olarak, ikinci Spinner, ilk spinner seçimine dayalı seçeneklerle birlikte görünecektir. Kullanıcı, çalışma zamanında, yani dinamik olarak ilk açılır menüden seçeceği için bunu Java kodu aracılığıyla yapacağız.

GUI olaylarını işlemek için MainActivity.java dosyasının içindeki kodu uygulamamız gerekiyor. Her iki spinnerın örneklerini oluşturarak başlayacağız ve ardından her iki spinnera setOnItemSelectedListener() atayacağız.

MainActivity.java

Birinci Spinner değerine göre ikinci Spinner Değerini Değiştirme

spinnerIller‘in onItemSelected() metodunun içinde, açılır listeden seçilen öğeyi almanız ve bu değere bağlı olarak, string dizisi kaynağından spinnerIlceler‘e girişler, yani seçenekler atamanız gerekir. Aşağıdaki kodu spinnerIller‘in onItemSelected() yönteminin içine ekleyin.

MainActivity.java

spinnerIllerden seçilen adın değerini alabiliriz. Bunun için apadapterView.getSelectedItem().toString() metodunu kullandık. Burada ebeveyn, spinnerIller görünümünün değeridir.

İlk açılır menüde sınıfın adını seçtikten sonra, ikinci açılır menüyü uygun değerlerle başlatmak için basit bir geçiş durumu kullanabiliriz.

Bir ArrayAdapter’ı ilgili string-array ile başlatacağız ve adaptörü ikinci spinner spinnerIlcelerimize yönlendireceğiz.

XML’deki dize kaynağından dize dizisine erişmek için getResources().getStringArray(ID_ARRAY) yöntemini kullanmamız gerekecek.

Ve sonunda, ikinci spinner visibility özelliğini VISIBLE olarak ayarlayacağız.

Seçilen değerleri göstermek için bir Toast oluşturma

Ardından, kullanıcı ikinci Spinner’dan bir seçenek seçtiğinde, bir Tost oluşturacağız ve seçilen değerleri ekranda görüntüleyeceğiz.

Tüm MainActivity Kodları:

Android uygulamanızı çalıştırdığınızda, ilk öğe zaten spinnera atanmış olduğundan varsayılan olarak ilk toast mesajını alacaksınız. Bunun için endişelenme. Sadece gidin ve birinci bölüm açılır menüleri için spinner seçimini değiştirmeye çalışın ve sonuçları aşağıdaki resimler gibi görmelisiniz.

Android Spinner Örnekleri

Yorum yap