You are on page 1of 5

Spinner

Project : SpinnerDemo

สําหรับโปรเจ็กนี้ จะแนะนําให้รู้จักกับ Spinner สําหรับการแสดงแถบในการเลือกข้อมูล

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TextView
android:id = "@+id/textView"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:background = "#353535" >
</TextView>

<Spinner
android:id = "@+id/spinner"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_margin = "20dip" >
</Spinner>
</LinearLayout>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

Code XML ในการจัด Layout ของ LinearLayout


orientation : อะไรก็ตามที่ใส่เข้าไปใน linear จะเรียงต่อกันตามแนวดิ่ง
width : กว้าง เท่ากับขนาดของ parent ในที่นี้ คือ จอภาพ
height : สูง เท่ากับขนาดของ parent ในที่นี้ คือ จอภาพ
<TextView
android:id = "@+id/textView"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:background = "#353535" >
</TextView>

Code XML ในการจัด Layout ของ TextView


id : มีชื่อตัวแปรว่า textView
width : กว้าง เท่ากับ ขนาดของ Parent ที่มันอยู่ ในที่นี้คือ LinearLayout
height : สูง เท่ากับขนาดของข้อมูลที่อยู่ข้างใน ซึ่ง ในที่นี้คือ ขนาดตัวอักษรปกติของ TextView
background : กําหนดพื้นหลัง ในที่นี้คือ #353535 สีเทา

<Spinner
android:id = "@+id/spinner"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_margin = "20dip" >
</Spinner>

Code XML ในการจัด Layout ของ ListView


id : มีชื่อตัวแปรว่า spinner
width : กว้าง เท่ากับ ขนาดของ Parent ที่มันอยู่ ในที่นี้คือ LinearLayout
height : สูง เท่ากับขนาดของข้อมูลที่อยู่ข้างใน ซึ่ง ในที่นี้คือ ขนาดตัวอักษรปกติของ Spinner
margin : ให้ Spinner ถูกดันเข้ามาจากของ ทุกๆด้าน คือ ซ้าน ขวา บน ล่าง ด้านละ 20 dip
import android.app.Activity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class SpinnerDemo extends Activity{



TextView textView;
Spinner spinner;
String list[] = {"Tao","OAT","Bom","Arm",
"Beer","Bass","Bank","Kik",
"Peech","Yos"};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

textView = (TextView)findViewById(R.id.textView);
spinner = (Spinner)findViewById(R.id.spinner);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(


this,
android.R.layout.simple_spinner_item,
list);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onSelect);
}

AdapterView.OnItemSelectedListener onSelect = new


AdapterView.OnItemSelectedListener() {
public void onItemSelected(android.widget.AdapterView<?> arg0,
android.view.View arg1, int arg2, long arg3) {
textView.setText(list[arg2]);
};
public void onNothingSelected(android.widget.AdapterView<?> arg0) {

};
};
}
TextView textView;
Spinner spinner;

Code Java ในการประกาศตัวแปร TextView , Spinner

String list[] = {"Tao","OAT","Bom","Arm",


"Beer","Bass","Bank","Kik",
"Peech","Yos"};

Code Java ในการประกาศตัวแปร String แบบ Array เพื่อเก็บ รายชื่อ

textView = (TextView)findViewById(R.id.textView);
spinner = (Spinner)findViewById(R.id.spinner);

Code Java ในการการเชื่อม ตัวแปร EditText , Spinner กับ Layout ( XML )

จากนั้นเราก็มาสร้าง ListAdapter สําหรับ Spinner จะได้ว่า

ArrayAdapter<String> adapter = new ArrayAdapter<String>(


this,
android.R.layout.simple_spinner_item,
list);

ในพรารามิเตอร์ที่ 2 ของ
ArrayAdapter<T>(context, textViewResourceId, objects)
เป็นการกําหนด Layout ของ TextView ที่อยู่ภายใน ListView ซึ่งมีอยู่หลายแบบ
ในนี้นี้เราจะใช้แบบ android.R.layout.simple_spinner_item

จากนั้นเราก็มากําหนด ให้มีการจําค่าที่ถูกเลือกไว้ด้วย โดยใช้ฟังก์ชัน setDropDownViewResource


จะได้ว่า

adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

Code Java ในการการกําหนด ListAdapter ในกับ Spinner

spinner.setOnItemSelectedListener(onSelect);

Code Java ในการการกําหนด เหตุการณ์เมื่อมีการ คลิกเลือก item ใน List ของ Spinner


โดยที่จะเขียนฟังก์ชันแยก แลัวให้มีชื่อว่า onSelect คือ
เมื่อมีการเลือก item จะเอา item นั้นไป แสดงบน TextView จะได้ว่า

AdapterView.OnItemSelectedListener onSelect = new


AdapterView.OnItemSelectedListener() {
public void onItemSelected(android.widget.AdapterView<?> arg0,
android.view.View arg1, int arg2, long arg3) {
textView.setText(list[arg2]);
};
public void onNothingSelected(android.widget.AdapterView<?> arg0) {

};
};

drbomkung@gmail.com

You might also like