تُوفّر المراوح طريقة سريعة لاختيار قيمة من المجموعة. في الإعداد التلقائي الحالة، فإن مؤشر سريان العمل يعرض القيمة المحددة حاليًا. النقر على مؤشر سريان العمل قائمة تعرض جميع القيم الأخرى التي يمكن للمستخدم تحديدها.
يمكنك إضافة مؤشر سريان العمل إلى التنسيق باستخدام
Spinner
وهو ما تفعله عادةً في تخطيط XML باستخدام
العنصر <Spinner>
يظهر ذلك في ما يلي
مثال:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
لملء مؤشر سريان العمل بقائمة اختيارات، حدِّد
SpinnerAdapter
في
Activity
أو
Fragment
رمز المصدر.
إذا كنت تستخدم مكونات Material Design،
معرّض للهجوم
القوائم المنسدلة تعادل Spinner
.
تعبئة مؤشر سريان العمل بخيارات المستخدمين
قد تأتي الخيارات التي تقدّمها بخصوص مؤشر سريان العمل من أي مصدر، ولكن
يجب أن يتم توفيرها من خلال SpinnerAdapter
، مثل
ArrayAdapter
إذا كانت الخيارات متاحة في صفيف أو
CursorAdapter
إذا كانت الخيارات متاحة من استعلام قاعدة البيانات.
فعلى سبيل المثال، إذا كانت الخيارات المتاحة للمؤشر الدوار محددة مسبقًا، يمكنك تزويدها بصفيف سلسلة محددة في مصدر السلسلة ملف:
<?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>
مع صفيف مثل هذه، يمكنك استخدام التعليمة البرمجية التالية في
Activity
أو Fragment
لإضافة مؤشر سريان العمل
المصفوفة باستخدام مثيل ArrayAdapter
:
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()
تتيح لك إنشاء ArrayAdapter
من صفيف السلسلة. تشير رسالة الأشكال البيانية
الوسيطة الثالثة لهذه الطريقة هي مورد تخطيط يحدد كيفية
يظهر الاختيار المحدد في عنصر التحكم في مؤشر سريان العمل. ويوفر النظام الأساسي
simple_spinner_item
التصميم. هذا هو التخطيط الافتراضي إلا إذا كنت تريد تحديد التخطيط الخاص بك
مظهر مؤشر سريان العمل.
اتصل
setDropDownViewResource(int)
لتحديد التنسيق الذي يستخدمه المحوّل لعرض قائمة خيارات مؤشر سريان العمل.
simple_spinner_dropdown_item
هو تخطيط قياسي آخر تحدده المنصة.
اتصل
setAdapter()
لاستخدام المحوّل مع "Spinner
".
الرد على اختيارات المستخدمين
عندما يحدد المستخدم عنصرًا من قائمة مؤشر سريان العمل،
عنصر واحد (Spinner
)
حدثًا مُختارًا ضمن العنصر.
لتحديد معالِج أحداث التحديد للمؤشر الدوّار، نفِّذ
AdapterView.OnItemSelectedListener
والواجهة
onItemSelected()
. على سبيل المثال، إليك تنفيذ للواجهة في
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. } }
تشير رسالة الأشكال البيانية
واجهة AdapterView.OnItemSelectedListener
تتطلّب
onItemSelected()
و
onNothingSelected()
طُرق معاودة الاتصال.
تحديد تنفيذ الواجهة من خلال استدعاء
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
مع Activity
أو Fragment
، كما في
المثال السابق، يمكنك ضبط this
كمثيل للواجهة.