Android Spinnert的使用

原创 2015年11月20日 12:05:38



效果图:






简述: 

spinnert是一种列表型的菜单 ,它继承于android.widget.AbsSpinner



使用方法 :

在布局文件中设置数据的来源

在布局文件中:

    <Spinner
        android:id="@+id/spinner_demo"
        android:entries="@array/demo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></Spinner>


其中 属性 entries 设置了spinner的数据的来源,在values/strings.xml中添加

 <string-array name="demo">
        <item>demo</item>
        <item>demo1</item>
        <item>demo2</item>
        <item>demo3</item>

    </string-array>


java中的实现

private Spinner mSpinnerDemo;

    private void setSpinnerDemo() {
         mSpinnerDemo = (Spinner) findViewById(R.id.spinner_demo);
  

        //设置mSpinnerDemo的监听
        mSpinnerDemo.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            //当选中某个条目的时候,会调用这个方法
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //获取选中条目的内容
                String  itemAtPosition = (String) mSpinnerDemo.getItemAtPosition(position);
                Toast.makeText(MainActivity.this, "yout selecte is "+itemAtPosition, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }


在java代码中设置数据的来源:


private Spinner mSpinnerDemo;

    private void setSpinnerDemo() {
         mSpinnerDemo = (Spinner) findViewById(R.id.spinner_demo);
        //创建数据源
        String[] strings = {"adf0","adf1","adf2","adf3","adf4","adf5"};
        //创建数据适配器
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout
                .simple_expandable_list_item_1,strings);
        //设置适配器的样式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mSpinnerDemo.setAdapter(adapter);

        //设置mSpinnerDemo的监听
        mSpinnerDemo.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            //当选中某个条目的时候,会调用这个方法
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //获取选中条目的内容
                String  itemAtPosition = (String) mSpinnerDemo.getItemAtPosition(position);
                Toast.makeText(MainActivity.this, "yout selecte is "+itemAtPosition, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }


方法调用一(2015/12/02更新)

用mSpinnerDemo.getSelectedItemId()获取选中的id,id是按照排序规则的。根据id则可以判断是选中了哪个。  





点击其他按钮触发显示spinner弹出菜单选项


只需要在相应的点击响应事件中调用spinner的    performClick();这个方法就 可以实现








版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android Spinner选择同一个选项时触发onItemSelected事件

今天有个同事在使用spinner控件时,再次选择同一个选项时没有触发onItemSelected事件。因为项目需求的原因,非常需要。所以我们一起看了看源码找出了“再次选择同一选项时为什么不触发事件”。...

android的spinner

一、概述    Spinner是一个每次只能选择所有项的一个项的控件。它的项来自于与之相关联的适配器中。二、重要属性    android:prompt:当Spinner对话框关闭时显示该提示三、重要...

Android精简小笔记(9):Spinner的用法(下拉选项控件):

1.在XML中配置:

安卓实现spinner下拉列表以及实现它点击事件

第一步添加文本内容,list.add(),第二步为数组适配器制定主体样式,为spinner的item样式,里面为list的内容。第三步为适配器设置下拉菜单样式 adapter.setDropDown...

Android Spinner选择同一个选项时触发onItemSelected事件

Android Spinner选择同一个选项时触发onItemSelected事件 http://blog.csdn.net/crystalddd/article/details/4987285...
  • ivinm
  • ivinm
  • 2016年09月10日 08:13
  • 1163

关于Android Spinner setSelection 和 onItemSelected事件的触发顺序

在Android开发中。会遇到想setSelection但是不想触发onItemSelected事件这种情况。 一般想法,是先移除监听器,等修改完成之后,再添加监听器。 但是,事实上,setSel...
  • Sun_Wu
  • Sun_Wu
  • 2016年11月30日 12:07
  • 1773

Spinner(3): OnItemSelectedListener 触发时机

博客 Spinner(1): 由SDK引发的问题、Spinner(2): 动态添加资源 简单介绍了spinner,但是 Spinner 还有陷阱,所以使用时应该注意。 本篇博客继续探讨Spi...

Android ArrayListAdapter<T>泛型类

/** * ArrayList Adapter泛型类 * Created by lezg on 2014/8/14. */ public abstract class ArrayListAdap...

android Spinner控件详解

Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner...

android下拉菜单spinner的使用方法

Spinner控件也是一种列表类型的控件,它的继承关系如下:  java.lang.Object     ↳ android.view.View       ↳ android.view.Vie...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Spinnert的使用
举报原因:
原因补充:

(最多只允许输入30个字)