下拉式清單 Spinner。
Spinner的使用,可以極大提高使用者的體驗性。當需要使用者選擇的時候,可以提供一個下拉式清單將所有可選的項列出來。供使用者選擇。
Demo如下,可以留作參考
一、使用數組作為資料來源
1.建立一個android的工程
2.工程的layout.xml檔案如下:聲明一個TextView控制項和一個Spinner控制項 Xml代碼
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- >
- <TextView android:id="@+id/spinnerText"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"></TextView>
- <Spinner android:id="@+id/Spinner01"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"></Spinner>
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/spinnerText" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content"></Spinner></LinearLayout>
3.java代碼 Java代碼
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemSelectedListener;
- import android.widget.ArrayAdapter;
- import android.widget.Spinner;
- import android.widget.TextView;
-
- public class SpinnerActivity extends Activity {
-
- private static final String[] m={"A型","B型","O型","AB型","其他"};
- private TextView view ;
- private Spinner spinner;
- private ArrayAdapter<String> adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.spinner);
-
- view = (TextView) findViewById(R.id.spinnerText);
- spinner = (Spinner) findViewById(R.id.Spinner01);
- //將可選內容與ArrayAdapter串連起來
- adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);
-
- //設定下拉式清單的風格
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
- //將adapter 添加到spinner中
- spinner.setAdapter(adapter);
-
- //添加事件Spinner事件監聽
- spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
-
- //設定預設值
- spinner.setVisibility(View.VISIBLE);
-
- }
-
- //使用數組形式操作
- class SpinnerSelectedListener implements OnItemSelectedListener{
-
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- view.setText("你的血型是:"+m[arg2]);
- }
-
- public void onNothingSelected(AdapterView<?> arg0) {
- }
- }
- }
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class SpinnerActivity extends Activity {private static final String[] m={"A型","B型","O型","AB型","其他"};private TextView view ;private Spinner spinner;private ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.spinner);view = (TextView) findViewById(R.id.spinnerText);spinner = (Spinner) findViewById(R.id.Spinner01);//將可選內容與ArrayAdapter串連起來adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);//設定下拉式清單的風格adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//將adapter 添加到spinner中spinner.setAdapter(adapter);//添加事件Spinner事件監聽 spinner.setOnItemSelectedListener(new SpinnerSelectedListener());//設定預設值spinner.setVisibility(View.VISIBLE);}//使用數組形式操作class SpinnerSelectedListener implements OnItemSelectedListener{public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {view.setText("你的血型是:"+m[arg2]);}public void onNothingSelected(AdapterView<?> arg0) {}}}
4、運行效果如下:
二、使用XML作為資料來源
1.建立一個android的工程
2.在values檔案夾下建立一個arryas.xml檔案:聲明一個TextView控制項和一個Spinner控制項,代碼如下: Xml代碼
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="plantes">
- <item>NOKIA</item>
- <item>MOTO</item>
- <item>HTC</item>
- <item>LG</item>
- <item>其他</item>
- </string-array>
- </resources>
<?xml version="1.0" encoding="utf-8"?><resources><string-array name="plantes"><item>NOKIA</item><item>MOTO</item><item>HTC</item><item>LG</item><item>其他</item></string-array></resources>
3.java代碼 Java代碼
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemSelectedListener;
- import android.widget.ArrayAdapter;
- import android.widget.Spinner;
- import android.widget.TextView;
-
- public class SpinnerActivity extends Activity {
-
- private TextView view2;
- private Spinner spinner2;
- private ArrayAdapter adapter2;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.spinner);
-
- spinner2 = (Spinner) findViewById(R.id.spinner02);
- view2 = (TextView) findViewById(R.id.spinnerText02);
-
- //將可選內容與ArrayAdapter串連起來
- adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);
-
- //設定下拉式清單的風格
- adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
- //將adapter2 添加到spinner中
- spinner2.setAdapter(adapter2);
-
- //添加事件Spinner事件監聽
- spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
-
- //設定預設值
- spinner2.setVisibility(View.VISIBLE);
-
- }
-
- //使用XML形式操作
- class SpinnerXMLSelectedListener implements OnItemSelectedListener{
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
- long arg3) {
- view2.setText("你使用什麼樣的手機:"+adapter2.getItem(arg2));
- }
-
- public void onNothingSelected(AdapterView<?> arg0) {
-
- }
-
- }
- }
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class SpinnerActivity extends Activity {private TextView view2;private Spinner spinner2;private ArrayAdapter adapter2;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.spinner);spinner2 = (Spinner) findViewById(R.id.spinner02);view2 = (TextView) findViewById(R.id.spinnerText02);//將可選內容與ArrayAdapter串連起來adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);//設定下拉式清單的風格 adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//將adapter2 添加到spinner中spinner2.setAdapter(adapter2);//添加事件Spinner事件監聽 spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener());//設定預設值spinner2.setVisibility(View.VISIBLE);}//使用XML形式操作class SpinnerXMLSelectedListener implements OnItemSelectedListener{public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {view2.setText("你使用什麼樣的手機:"+adapter2.getItem(arg2));}public void onNothingSelected(AdapterView<?> arg0) {}}}
4、運行效果如下: