آموزش برنامه نویسی اندروید با اندروید استودیو (بخش بیست و نهم: کار با لیست کشویی Spinner)

استاندارد

در این بخش از آموزش به Spinner ها یا همان لیست های کشویی می پردازیم. از این لیست های کشویی بارها در اندروید دیده ایم و در این بخش با استفاده از مثالی، میخوایم یک Snipper ایجاد کنیم و در مورد آن، صحبت کنیم.

لیست های کشویی امکان انتخاب یک مورد از مواردی که وجود دارد را به ما می دهد. مزیت لیست کشویی در آن است که می تواند موارد زیادی را در خود جای دهد ولی جای زیادی را اشغال نکند. فقط هنگامی که به آن احتیاج داریم، محتویات آن نشان داده می شود.

نمونه ای از یک لیست کشویی (Spinner) را در عکس زیر، مشاهده می نمایید.

spinner-hint-gsm-developers

کاری که در اینجا می خواهیم بکنیم اینست که لیست کشویی را ایجاد نماییم و سپس مقداردهی نماییم. سپس قابلیت کلیک را برای هرکدام از آنها فعال می کنیم.

ابتدا یک پروژه به اسم Spinner-Gsm ایجاد می کنم.  در پروژه ای که ایجاد کرده ایم یک Spinner از قسمت ویجت های Palette به لایه اپلیکیشن خود می کشیم.

کد Spinner

<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="110dp"
        android:id="@+id/spinner" />

برای مقدار دهی به Spinner، باید به قسمت کد جاوای برنامه، یعنی MainActivity.java برویم.

سپس مراحل زیر را برای اضافه کردن آیتم به Spinner دنبال می کنیم:

  1. برای این کار، ابتدا یک رشته تعریف می کنیم و مواردی که می خواهیم در لیست کشویی ما نمایش داده شود را در رشته مقدار دهی می نماییم.
  2. سپس لیست کشویی یا همان Spinner را با استفاده از ID به کد جاوای برنامه معرفی می کنیم.
  3. در مرحله سوم باید یک ArrayAdapter به رشته (string) اضافه نماییم. این کار باعث می شود که اطلاعات از رشته ای که تعریف کرده بودیم گرفته شود و سپس به صورت لیست شده به لیست کشویی ما فرستاده شود.
  4. برای نمایش اداپتر در لیست کشویی، Spinner را باید به اداپتر، Set نماییم.
  5. در مرحله ی آخر به Spinner یک رویداد اضافه می کنیم تا در هنگام کلیک بر روی هر کدام از آیتم ها، یک توست به کاربر نمایش داده شود.

می توانید کد مربوط به مراحل بالا در زیر مشاهده کنید.

مراحل به صورت کامنت شماره گذاری شده اند.

کد کامل جاوا MainActivity

package com.gsm_developers.spinner_gsm;

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 {

//1
    String[] web = { "Spinner1", "Spinner2", "Spinner3", "Spinner4", "Spinner5", "Spinner6", "Spinner7", "Spinner8" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//2
        Spinner sp = (Spinner) findViewById(R.id.spinner);

//3
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  android.R.layout.simple_dropdown_item_1line,web);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//4
        sp.setAdapter(adapter);
        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
//5
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long id) {
                Toast.makeText(MainActivity.this,"U Choosed : " +  web[position],Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }
        });
    }
}

کار به پایان می رسد. برنامه را اجرا می کنیم.

مشاهده می کنید که یک لیست کشویی باز شده است که وقتی بر روی آن می زنیم، آیتمی را که انتخاب کرده ایم به ما نشان می دهد.

android-studio-beginners-gsm-developers_94