Tasarım Kodlama

Android Spinner Kullanımı

Daha önceki derslerde ListView ve GridView kullanımı hakkında bilgiler edindik. Bu derste, Android’de Spinner hakkında bilgi edinip keşfedeceğiz.

Spinner, öğeleri kullanıcı seçimi için mevcut olan bir açılır menü biçiminde tutan bir görünüm türüdür. Kullanıcının herhangi bir seçeneği seçebileceği birden fazla seçenek içeren bir menü oluşturur. Aşağıda bir Spinner örneği verilmiştir.

Layout XML dosyamıza aşağıdaki kodu ekleyerek bir Spinner oluşturabiliriz:

Biçimlendirilmiş bir örnek:

Spinner ve ListView arasındaki fark nedir?

Hem ListView hem de Spinner çok benzer görünüyor. Ama birbirlerinden farklıdırlar.

Spinner, belirli bir değer kümesinden bir değer seçmek için hızlı bir yol sağlar ve varsayılan durumda, bir spinner yalnızca o anda seçili olan değeri gösterir. Spinnere dokunduğunuzda kullanıcının yeni bir tane seçebileceği diğer tüm mevcut değerlerin (seçeneklerin) bulunduğu bir açılır menü görüntülenir.

ListView ise kaydırılabilir öğelerin bir listesini görüntüleyen bir görünüm grubudur. Liste öğeleri, dizi veya veritabanı tablosu gibi bir veri kaynağından içerik çeken ve her bir veri öğesini listeye yerleştirilmiş bir görünüme dönüştüren bir Adapter kullanılarak otomatik olarak listeye eklenir.

Bu nedenle, bir Spinner ve ListView, göründükleri şekilde ve kullanımlarında da farklılık gösterir. Bir dizi seçenek arasından yalnızca bir değer seçmek istiyorsanız, bir Spinner kullanmalısınız. Bir veri listesi görüntülemek istiyorsanız, bir ListView kullanın.

Bir Spinner nasıl çalışır?

Adım 1: Veri kaynağını tanımlayın

Spinnerdeki verileri görüntülemek için kullanılacak bir veri kaynağı olmalıdır.

Bir veri kaynağı bir List, bir Array, bir JSON verisi veya bir veritabanından gelen veri olabilir.

Adım 2: Adapter tanımlayın.

Veri kaynağından veri almak, bunun bir görünümünü oluşturmak ve ardından AdapterView yani Spinner‘a geçirmek için bir Adapter(ArrayAdapter vb.) olacaktır. Bu nedenle, aşağı açılır menü için bir düzen belirleyerek Adapter verilerin nasıl görüntüleneceğini söylemeniz gerekir.

onCreate() metoduna aşağıdaki kodu ekliyoruz.

Bir ArrayAdapter’ı başlatmak için kullanılan 3 parametre vardır (örneğimizde bir ArrayAdapter kullandık):

  • Context c: ArrayAdapter’ın somutlaştırıldığı geçerli sınıf nesnesini ifade eder.
  • Layout: Spinnerda tek bir öğenin nasıl görüneceğini tanımlayan bir düzen dosyasıdır. Android SDK varsayılan olarak simple_spinner_item ve simple_spinner_dropdown_item gibi düzenler sağlar ve herhangi bir özel tasarım gereksiniminiz yoksa yalnızca bunları kullanmanızı öneririz.
  • Veri kaynağı: Verilerin bir görünüme dönüştürüleceği veri kaynağıdır.

Adım 3: Spinnerın veri kaynağını adapter olarak ayarlayın.

Adım 4: Spinner için herhangi bir olay tanımlayın

Seçenek seçimi için bir olay işleyicisi eklemek gerekir. Bir kullanıcı menüden herhangi bir seçeneği seçtiğinde ne olacağını belirlemek için OnItemSelectedListener arabirimini uygulayabilirsiniz. Bunun için aşağıdaki belirtilen arayüzü uygulamanız ve iki yöntemi geçersiz kılmanız gerekir.

Android Spinner Olay Kullanımı

onItemSelected()

This method has 4 parameters:

  • AdapterView av: Bu, kullandığınız Spinner görünümüdür.
  • View v: Tıklanan döndürücünün içindeki TextView’ı tanımlar.
  • int position: Spinnerde tıklanan öğenin konumunu söyler. Dizin veya konum 0’dan başlar.
  • long id: Spinner’da tıklanan öğenin satır kimliğini verir. Bu parametre esas olarak Android’deki veritabanlarıyla uğraşırken kullanılır.

onNothingSelected()

Bu yöntemin yalnızca 1 parametresi vardır:

  • AdapterView av: Kullanmış olduğunuz Spinner görünümüdür. Bu yöntem, halihazırda seçili olan öğe Spinner’daki kullanılabilir öğeler listesinden her kaldırıldığında çağrılır. Bağdaştırıcı, seçili öğe artık mevcut olmayacak şekilde değiştirilirse, bu yöntem çağrılır. Bu yöntem, önceki öğe artık mevcut olmadığında hangi öğenin seçileceğini ayarlayabilmeniz için kullanılabilir. Bu, döndürücünün listedeki bir sonraki öğeyi otomatik olarak seçmesini engeller.

Yukarıda kullanılan spinner için aşağıdaki gibi bir olay tanımlaması yapabilirsiniz.

Spinner’ların ne olduğu ve nasıl uygulanabileceği hakkında bir fikriniz olduğunu umuyoruz. Bir sonraki derste, Android Uygulamamızda nasıl bir Spinner oluşturabileceğimizi göreceğiz.

Daha fazla Android içeriği için Android Dersleri yazısını inceleyebilirsiniz.

2 yorum