android經常使用組件之Spinner

Spinner是下拉列表框,用戶能夠經過該控件從所列item中進行選擇,還能夠觸發item的監聽事件。java

該實例經過ArrayAdapter類建立了含有30個item的下拉列表,當用戶從所列的item中進行選擇後,會彈出一個消息框,提示用戶所選條目。注意spinner條目監聽方法是setOnItemSelectedListener(),而不是setOnItemClickListener(),若是使用setOnItemClickListener()方法會出現秒退現象。android

首先是佈局文件,添加一個Spinner組件:app

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="main.test_spinner.MainActivity" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:spinnerMode="dropdown" />
   <!-- 經過設置spinnerMode能夠設置item顯示方式,是下拉式(API爲11以上)仍是彈出對話框樣式的 --> 

</LinearLayout>

其次是strings.xml文件,主要是label顯示,:ide

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

    <string name="app_name">Test_Spinner</string>

</resources>

再次是android源代碼文件:佈局

package main.test_spinner;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity implements OnItemSelectedListener{

    private Spinner spinner=null;
    private ArrayAdapter<String> adapter=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        spinner=(Spinner) findViewById(R.id.spinner1);
        adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1);//item顯示佈局採用系統提供的
        
        for(int i=0;i<30;i++)
            adapter.add("第"+i+"項");
        spinner.setAdapter(adapter);//關聯適配器
        spinner.setSelection(2);//設置初始顯示項,這裏是position two,由於位置從0開始計數
        spinner.setOnItemSelectedListener(MainActivity.this);
    }

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub
        Toast.makeText(MainActivity.this, "您選擇的是第"+arg2+"項!", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
        
    }

}

最後是測試結果:測試

一、啓動時的結果:this

二、點擊第五項結果顯示:code

相關文章
相關標籤/搜索