Android控件Spinner下拉列表的使用

在Android開發中某些時候少不了二級菜單Spinner的使用,下拉列表Spinner可以設置其選項點擊事件的監聽器,就像給ListView設置選項點擊事件但監聽器一樣:setOnItemClickListener(),還可以設置長按點擊事件setOnItemLongClickListener()。
下拉列表的風格又很多種,可以根據自己的喜愛來設置,這裏我就介紹一下常用的類型;
首先,佈局
在自己的佈局文件中定義一個Spinner

        <Spinner
            android:id="@+id/sp_type_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="10dp" />

然後再strings.xml文件中編寫二級菜單目錄

    <array name="type_name">
        <item>涼菜</item>
        <item>小吃</item>
        <item>零食</item>
        <item>主食</item>
        <item>水果</item>
        <item>茶</item>
    </array>

接下來就是要拿到數據,並且把數據顯示到Spinner上
注意:我這裏寫的的長按事件,如果想寫單擊事件的話就改爲setOnItemClickListener
R.layout.simple_spinner_dropdown_item是Android自帶的比較常用的一種風格
MainActivity.java

package com.example.menudemo;

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

public class NewItem extends AppCompatActivity {
    private Spinner spinner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_new_item);
        spinner = findViewById (R.id.sp_type_name);
        getData();
    }
    private void getData() {
        //拿到數據
        final String[] arrays = getResources ().getStringArray (R.array.type_name);
        //獲取系統自帶的適配器
        ArrayAdapter<String> mSpinnerAdapter = new ArrayAdapter<String> (NewItem.this,android.R.layout.simple_spinner_dropdown_item,arrays);
        spinner.setAdapter (mSpinnerAdapter);
        //添加點擊事件
        spinner.setOnItemLongClickListener (new AdapterView.OnItemLongClickListener () {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                        Toast.makeText (NewItem.this, "哈嘍" + arrays[position], Toast.LENGTH_SHORT).show ();
                return false;
            }
        });
    }
}

效果圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章