برنامج Spinner التعليمي مع أمثلة في Android Studio
في Android ، يوفر Spinner طريقة سريعة لتحديد قيمة واحدة من مجموعة من القيم. Spinners Android ليست سوى القائمة المنسدلة التي تظهر في لغات البرمجة الأخرى. في الحالة الافتراضية ، يعرض القرص Spinner القيمة المحددة حاليًا. يوفر طريقة سهلة لتحديد قيمة من قائمة القيم.
ملاحظة مهمة: يرتبط Spinnerبعرض المحول ، لذا لملء البيانات في قائمة Spinner ، نحتاج إلى استخدام أحد فئة المحول .
فيما يلي رمز XML الأساسي لـ Spinner:
<Spinner android:id="@+id/simpleSpinner " android:layout_width="fill_parent" android:layout_height="wrap_content" />
ملاحظة مهمة: لملء البيانات في قائمة Spinner ، نحتاج إلى تنفيذ فئة محول . يستخدم Spinner بشكل أساسي لعرض حقل النص فقط حتى نتمكن من تنفيذ Array Adaptor لذلك. يمكننا أيضًا استخدام Base Adaptor والمحولات المخصصة الأخرى لعرض قائمه Spinner مع قائمة تخصيص أكثر. لنفترض إذا كنا بحاجة لعرض textview و imageview في قائمة البند Spinner ثم محول مجموعة ليست كافية لذلك. هنا يتعين علينا تنفيذ محول مخصص في فئتنا. الصورة أدناه من Spinner و Custom Spinner ستجعلها أكثر وضوحًا.
المحول هو جسر بين مكون واجهة المستخدم ومصدر البيانات الذي يساعدنا على ملء البيانات في مكون واجهة المستخدم. إنه يحتفظ بالبيانات ويرسل البيانات إلى عرض المحول ، ثم يمكن للعرض أن يأخذ البيانات من عرض المحول ويعرض البيانات على طرق عرض مختلفة مثل عرض القائمة ، عرض الشبكة ، الدوار. عندما يكون لديك قائمة بالعناصر الفردية المدعومة بمصفوفة ، يمكنك استخدام Array Adaptor.
فيما يلي رمز ArrayAdapter في Android:
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
مثال على Spinner في Android Studio:
المثال 1: أدناه هو المثال الذي نعرض فيه قائمة بأسماء البنوك في قائمة منسدله Spinner وكلما حددت عنصرًا ، سيتم عرض القيمة باستخدام الخبز المحمص على شاشة الهاتف المحمول. فيما يلي الناتج النهائي والكود:
حدد ملف -> جديد -> مشروع جديد ->. املأ الاستمارات وانقر فوق الزر "إنهاء".
الخطوة 2: افتح res -> layout -> activity_main. xml (أو) main. xml وأضف الكود التالي. سنقوم هنا بإنشاء Spinner داخل النسق النسبي .
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Spinner android:id="@+id/simpleSpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="100dp" /> </RelativeLayout>
الخطوة 3: الآن افتح app-> java -> package -> MainActivity. java وأضف الكود التالي. هنا سوف نستخدم ArrayAdapter لملء البيانات في Spinner. كما أننا نستخدم Toast للعرض عند تحديد العنصر في Spinner.
package example.abhiandriod.spinnerexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ String[] bankNames={"BOI","SBI","HDFC","PNB","OBC"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Getting the instance of Spinner and applying OnItemSelectedListener on it Spinner spin = (Spinner) findViewById(R.id.simpleSpinner); spin.setOnItemSelectedListener(this); //Creating the ArrayAdapter instance having the bank name list ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item,bankNames); aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //Setting the ArrayAdapter data on the Spinner spin.setAdapter(aa); } //Performing action onItemSelected and onNothing selected @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position,long id) { Toast.makeText(getApplicationContext(), bankNames[position], Toast.LENGTH_LONG).show(); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }
المخرج :
الآن قم بتشغيل البرنامج في Emulator وسترى خيارات للاختيار من بين أسماء البنوك الموجودة داخل القائمة المنسدلة. سترى أيضًا رسالة Toast تظهر على الشاشة عندما تختار البنك المعين.