Çarklar, bir kümeden bir değer seçmeniz için hızlı bir yol sağlar. Değer değiştirici, varsayılan durumda o anda seçili olan değeri gösterir. Değer değiştiriciye dokunduğunuzda, kullanıcının seçebileceği diğer tüm değerleri gösteren bir menü görüntülenir.
Spinner
nesnesiyle düzeninize bir döner simge ekleyebilirsiniz. Bunu genellikle XML düzeninizde bir <Spinner>
öğesiyle yaparsınız. Bu, aşağıdaki örnekte gösterilmektedir:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
Değer değiştiriciyi bir seçenek listesiyle doldurmak için Activity
veya Fragment
kaynak kodunuzda bir SpinnerAdapter
belirtin.
Materyal Tasarım Bileşenleri kullanıyorsanız gösterilen açılır menüler, Spinner
öğesine eşdeğerdir.
Dönen simgeyi kullanıcı seçimleriyle doldurun
Değer değiştirici için sağladığınız seçenekler herhangi bir kaynaktan gelebilir ancak bunları bir SpinnerAdapter
aracılığıyla sağlamanız gerekir. Örneğin, seçenekler bir dizide kullanılabiliyorsa ArrayAdapter
veya seçenekler bir veritabanı sorgusundan kullanılabiliyorsa CursorAdapter
aracılığıyla sağlanmalıdır.
Örneğin, döner simgeniz için kullanılabilecek seçenekler önceden belirlenmişse bunlara dize kaynak dosyasında tanımlanmış bir dize dizisi sağlayabilirsiniz:
<?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 dizide, ArrayAdapter
örneği kullanarak dönerciye diziyi sağlamak için Activity
veya Fragment
etiketinizde aşağıdaki kodu kullanabilirsiniz:
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);
createFromResource()
yöntemi, dize dizisinden bir ArrayAdapter
oluşturmanızı sağlar. Bu yöntemin üçüncü bağımsız değişkeni, seçilen seçimin değer değiştirici kontrolünde nasıl göründüğünü tanımlayan bir düzen kaynağıdır. Platform, simple_spinner_item
düzenini sağlar. Değer değiştiricinin görünümü için kendi düzeninizi tanımlamak istemiyorsanız varsayılan düzen budur.
Bağdaştırıcının, döner simge seçeneklerinin listesini görüntülemek için kullandığı düzeni belirtmek üzere setDropDownViewResource(int)
çağrısı yapın.
simple_spinner_dropdown_item
, platform tarafından tanımlanan başka bir standart düzendir.
Bağdaştırıcıyı Spinner
cihazınıza uygulamak için setAdapter()
numaralı telefonu arayın.
Kullanıcı seçimlerine yanıt verin
Kullanıcı, değer değiştiricinin menüsünden bir öğe seçtiğinde Spinner
nesnesi, öğe seçiminde bir etkinlik alır.
Değer değiştirici için seçim etkinliği işleyiciyi tanımlamak üzere AdapterView.OnItemSelectedListener
arayüzünü ve karşılık gelen onItemSelected()
geri çağırma yöntemini uygulayın. Örneğin, arayüzün Activity
içindeki bir uygulamasını aşağıda görebilirsiniz:
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. } }
AdapterView.OnItemSelectedListener
arayüzü, onItemSelected()
ve onNothingSelected()
geri çağırma yöntemlerini gerektirir.
setOnItemSelectedListener()
çağrısı yaparak arayüz uygulamasını belirtin:
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) spinner.onItemSelectedListener = this
Java
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); spinner.setOnItemSelectedListener(this);
Önceki örnekte olduğu gibi, AdapterView.OnItemSelectedListener
arayüzünü Activity
veya Fragment
ile uygularsanız this
arayüzü örneği olarak geçirebilirsiniz.