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;
            }
        });
    }
}

效果图:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值