Android UI控制元件系列:Spinner(下拉選單)

apkbus發表於2014-12-01

當在某個網站註冊賬號的時候,網站會讓我們提供性別,生日,城市等資訊,為了方便,就提供了一個下拉選單供我們選擇,在Android也同樣有這樣的功能,這就是Spinner下拉選單

在編碼的同時,首先需要在佈局中定時Spinner元件,然後將可選內容通過ArrayAdapter和下拉選單連線起來,最後要獲得使用者選擇的選項,我們需要設計事件監聽器setOnItemSelectedListener並實現onItemSelected,從而獲得使用者所選擇的內容,最後通過setVisibility方法設定當前的顯示項

SpinnerTest.java

package org.hualang.Spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class SpinnerTest extends Activity {
    /** Called when the activity is first created. */
        private static final String[] citys={"杭州","北京","成都","大連","深圳","南京"};
        private TextView text;
        private Spinner spinner;
        private ArrayAdapter<String> adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        text=(TextView)findViewById(R.id.text);
        spinner=(Spinner)findViewById(R.id.spinner);

        //將可選內容與ArrayAdapter連線
        adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,citys);
        //設定下拉選單風格
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //將adapter新增到spinner中
        spinner.setAdapter(adapter);
        //新增Spinner事件監聽
        spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
        {

                        @Override
                        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                        int arg2, long arg3) {
                                // TODO Auto-generated method stub
                                text.setText("你所在的城市是:"+citys[arg2]);
                                //設定顯示當前選擇的項
                                arg0.setVisibility(View.VISIBLE);
                        }

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

                        }

        });
    }
}

main.xml

<?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/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="您所在的城市"
    />
<Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
/>
</LinearLayout>

執行結果:

相關文章