下拉列表---Spinner用于顯示列表項,類似于一組單選按鈕RadioButton。Spinner的使用,可以極大的提升用戶的體驗性。當需要用戶選擇的時候,可以提供一個下拉列表項給用戶選擇。
具體來說下拉列表是如何實現的呢?
通過查閱API知道Spinner繼承AdapterView,因此它的數據源需要通過Adapter實現。
一般來說Spinner的數據源可以是數組,也可以是一個XML文件。
一、以數組作為數據源
這種實現方式比較簡單,先上效果圖:
	
	
xml文件代碼;
<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" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spinner演示" android:layout_gravity="center_horizontal"/> <TextView android:id="@+id/result" android:text="你的選擇:" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
MainActivity文件代碼:
package com.kiritor.ui_spinner;  import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView;  public class MainActivity extends Activity {    private TextView result = null;   private Spinner spinner = null;   private ArrayAdapter<String> adapter = null;   private static final String [] langurage ={"機器語言","匯編","c語言","c++語言","java語言"};   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     result = (TextView)findViewById(R.id.result);     spinner = (Spinner)findViewById(R.id.spinner);     adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,langurage);     //設置下拉列表風格     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     //將適配器添加到spinner中去     spinner.setAdapter(adapter);     spinner.setVisibility(View.VISIBLE);//設置默認顯示     spinner.setOnItemSelectedListener(new OnItemSelectedListener() {     @Override     public void onItemSelected(AdapterView<?> arg0, View arg1,         int arg2, long arg3) {       // TODO Auto-generated method stub       result.setText("你的選擇是:"+((TextView)arg1).getText());                   }     @Override       public void onNothingSelected(AdapterView<?> arg0) {         // TODO Auto-generated method stub                }     });        }    @Override   public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.     getMenuInflater().inflate(R.menu.main, menu);     return true;   }  } 二、以xml文件作為數據源
先上效果圖吧:
	
數據源xml文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="langurage"> <item>機器語言</item> <item>匯編語言</item> <item>c語言</item> <item>c++語言</item> <item>java語言</item> <item>Android學習</item> </string-array> </resources>
xml文件:
<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" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Spinner演示" android:layout_gravity="center_horizontal"/> <TextView android:id="@+id/result" android:text="你的選擇:" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
MainActivity
package com.kiritor.ui_spinner;  import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView;  public class MainActivity extends Activity {    private TextView result = null;   private Spinner spinner = null;   private ArrayAdapter<CharSequence> adapter = null;      @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     result = (TextView)findViewById(R.id.result);     spinner = (Spinner)findViewById(R.id.spinner);     <span style="color:#FF0000;">adapter = ArrayAdapter.createFromResource(this,R.array.langurage,android.R.layout.simple_spinner_item);</span>     //設置下拉列表風格     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     //將適配器添加到spinner中去     spinner.setAdapter(adapter);     spinner.setVisibility(View.VISIBLE);     spinner.setOnItemSelectedListener(new OnItemSelectedListener() {     @Override     public void onItemSelected(AdapterView<?> arg0, View arg1,         int arg2, long arg3) {       // TODO Auto-generated method stub       result.setText("你的選擇是:"+((TextView)arg1).getText());                   }     @Override       public void onNothingSelected(AdapterView<?> arg0) {         // TODO Auto-generated method stub                }     });        }    @Override   public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.     getMenuInflater().inflate(R.menu.main, menu);     return true;   }  } 今天就到這里了,至于spinner的自定義用法和一些Spinner的實際用法舉例,下次再說!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答