سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Spinner به زبان کوتلین در برنامه نویسی اندروید می پردازیم قبلا در مورد مزایای استفاده از زبان کوتلین (kotlin) صحبت کردیم امروز به پیاده سازی Spinner در برنامه نویسی اندروید به زبان کوتلین می پردازیم در ادامه با ما همراه باشید.
در صورتی که تازه با زبان برنامه نویسی کوتلین آشنا شده اید مطالب زیر را بررسی کنید.
ابتدا قبل از اینکه از زبان کوتلین (kotlin) در برنامه نویسی اندروید استفاده کنیم لازم است آن را به اندروید استودیو اضافه کنیم برای اینکار از لینک زیر استفاده کنید.
بعد از اینکه کوتلین را به اندروید استودیو اضافه کردید یک layout به نام activity_main.xml ساخته و سپس کدهای زیر را در آن قرار دهید.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation="vertical"
tools:context=".SpinnerActivity">
<Spinner
android:id="@+id/sp_option"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"/>
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"/>
</LinearLayout>
در بالا یک spinner قرار داده ایم و یک TextView که در TextView ما نتیجه انتخاب از spinner قرار خواهد گرفت.
یک اکتیویتی به نام MainActivity.kt ایجاد کرده (دقت کنید نباید جاوا باشد چون درحال برنامه نویسی به زبان کوتلین هستیم) و کدهای زیر را در آن قرار دهید.
package ir.programchi
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.TextView
class SpinnerActivity : AppCompatActivity() {
lateinit var option : Spinner
lateinit var result : TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_spinner)
option = findViewById(R.id.sp_option) as Spinner
result = findViewById(R.id.tv_result) as TextView
val options = arrayOf("Option 1", "Option 2","Option 3")
option.adapter = ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,options)
option.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
result.text = "Please Select an Option"
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
result.text = options.get(position)
}
}
}
}
در بالا ابتدا view های مربوط به Spinner و TextView را به دست آوردیم سپس یک آرایه به نام options تعریف کرده و سه مقدار در آن قرار دادیم این مقدار ها با کلیک بروی spinner در یک List نمایش داده می شوند سپس آرایه ای که تعریف شده در ادامه در آداپتور قرار می گیرد تا دیتا ها رد spinner ما Populate شوند برای اینکه نتیجه انتخاب از spinner را به دست بیاریم باید برای آن باید Listener تعریف کنیم دو تا Void داریم اولی به نام onNothingSelected یعنی اینکه چیزی از Spinner انتخاب نشده است و void دوم onItemSelected در اینجا نتیجه انتخاب از spinner دریافت می شود.
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
مطالعه بیشتر