Uygulamanıza döner simge ekleyin

Çarklar, kümeden bir değer seçmek için hızlı bir yol sunar. Varsayılan durumunda, bir döner simgenin o anda seçili olduğu değer gösterilir. Çarka dokunma kullanıcının seçebileceği diğer tüm değerleri gösteren bir menü görüntüler.

.
Şekil 1. Kullanılabilir seçenekleri gösteren döner simgeden bir menü değerler.

Düzeninize döndürme işareti ekleyebilirsiniz. Spinner. bunu XML düzeninizde genellikle bir <Spinner> öğesi. Bu işlem aşağıdaki bölümlerde gösterilir: örnek:

<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Döner simgeyi bir seçenek listesiyle doldurmak için bir SpinnerAdapter. Activity veya Fragment kaynak kodudur.

Materyal Tasarım Bileşenleri kullanıyorsanız deneyimi açılır menüler, Spinner eşdeğeridir.

Çarkı kullanıcı seçenekleriyle doldurma

Dönen simge için sağladığınız seçenekler herhangi bir kaynaktan gelebilir, ancak Bunları bir SpinnerAdapter üzerinden sağlamalıdır. Örneğin: ArrayAdapter seçenekler bir dizi veya bir dizide mevcutsa CursorAdapter seçenekleri vardır.

Örneğin, döner simgeniz için mevcut seçenekler önceden belirlenmişse onlara bir dize kaynağı dosya:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

Bunun gibi bir diziyle, bilgisayarınızda aşağıdaki kodu kullanabilirsiniz: Activity veya Fragment ile döner simgeye dizi: ArrayAdapter örneği:

Kotlin

val spinner: Spinner = findViewById(R.id.planets_spinner)
// Create an ArrayAdapter using the string array and a default spinner layout.
ArrayAdapter.createFromResource(
        this,
        R.array.planets_array,
        android.R.layout.simple_spinner_item
).also { adapter ->
    // Specify the layout to use when the list of choices appears.
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    // Apply the adapter to the spinner.
    spinner.adapter = adapter
}

Java

Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
// Create an ArrayAdapter using the string array and a default spinner layout.
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this,
        R.array.planets_array,
        android.R.layout.simple_spinner_item
);
// Specify the layout to use when the list of choices appears.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner.
spinner.setAdapter(adapter);

İlgili içeriği oluşturmak için kullanılan createFromResource(). yöntemi, dize dizisinden bir ArrayAdapter oluşturmanızı sağlar. İlgili içeriği oluşturmak için kullanılan bu yöntemin üçüncü bağımsız değişkeni, döner simge kontrolünde görünür. Platform, sunduğumuz simple_spinner_item. kullanır. için kendi düzeninizi tanımlamak istemediğiniz sürece varsayılan düzen budur. görünüşü.

Telefonla arama setDropDownViewResource(int). değerini girin. simple_spinner_dropdown_item. platform tarafından tanımlanan başka bir standart düzendir.

Telefonla arama setAdapter(). için adaptörü Spinner cihazınıza uygulayın.

Kullanıcı seçimlerine yanıt verin

Kullanıcı döner simgenin menüsünden bir öğe seçtiğinde Spinner nesne Bir öğe üzerinde seçilen etkinlik aldığında.

Bir döner simge için seçim etkinliği işleyicisini tanımlamak üzere AdapterView.OnItemSelectedListener ve ilgili onItemSelected() geri çağırma yöntemini kullanın. Örneğin burada, arayüz uygulamasının Activity:

Kotlin

class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener {
    ...
    override fun onItemSelected(parent: AdapterView<*>, view: View?, pos: Int, id: Long) {
        // An item is selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos).
    }

    override fun onNothingSelected(parent: AdapterView<*>) {
        // Another interface callback.
    }
}

Java

public class SpinnerActivity extends Activity implements OnItemSelectedListener {
    ...
    public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
        // An item is selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos).
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback.
    }
}

İlgili içeriği oluşturmak için kullanılan AdapterView.OnItemSelectedListener arayüzü için onItemSelected() ve onNothingSelected() yöntemlerine göz atın.

setOnItemSelectedListener():

Kotlin

val spinner: Spinner = findViewById(R.id.planets_spinner)
spinner.onItemSelectedListener = this

Java

Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
spinner.setOnItemSelectedListener(this);

AdapterView.OnItemSelectedListener aşağıdaki gibi Activity veya Fragment ile arayüz oluşturun önceki örnekte, arayüz örneği olarak this öğesini geçirebilirsiniz.