精华内容
下载资源
问答
  • Android Studio 下拉框Spinner实例

    千次阅读 2020-04-03 07:56:50
    功能 下拉框相当常见了,例如选择省、市、县;例如选择部门;选择员工。用处一般是多选一。 显示 下拉框一般有

    1. 功能

    下拉框相当常见了,例如选择省、市、县;例如选择部门;选择员工。用处一般是多选一。

    2. 显示

    下拉框一般有两种形式,一种是下拉显示可选项,一种是弹窗显示可选项。通过调整参数spinnerMode,dropdown/dialog分别代表两种下拉框。

    注意下拉框的数据需要从资源中关联过来,资源文件res/values/arrays.xml代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="gradeArray">
            <item>初一</item>
            <item>初二</item>
            <item>初三</item>
        </string-array>
    </resources>
    

    Android布局文件如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="4dp">
    
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/gradeArray"
            android:spinnerMode="dropdown"></Spinner>
    
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/gradeArray"
            android:spinnerMode="dialog"></Spinner>
    
        <Button
            android:id="@+id/buttonOk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="确认" />
    </LinearLayout>
    

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

    3. 动态设置选项

    可以利用数组适配器ArrayAdapter动态设置下来框的选项,布局文件修改为:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="4dp">
        <Spinner
            android:id="@+id/spinnerGrade"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:spinnerMode="dropdown"></Spinner>
        <Button
            android:id="@+id/buttonOk"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="确认" />
    </LinearLayout>
    

    代码部分修改为:

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Spinner spinnerGrade=findViewById(R.id.spinnerGrade);
            //内容数组
            String[] gradeArray={"初一","初二","初三","初四"};
            //数组适配器
            ArrayAdapter<String> gradeAdapter=new ArrayAdapter<>(this,R.layout.support_simple_spinner_dropdown_item,gradeArray);
            spinnerGrade.setAdapter(gradeAdapter);
            //设置默认选中项
            spinnerGrade.setSelection(0);
        }
    }
    

    4. 获取选中项

    点击确认后获取选中项,并显示选中项内容。

    public class MainActivity extends AppCompatActivity {
        //内容数组
        String[] gradeArray={"初一","初二","初三","初四"};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Spinner spinnerGrade=findViewById(R.id.spinnerGrade);
            //数组适配器
            ArrayAdapter<String> gradeAdapter=new ArrayAdapter<>(this,R.layout.support_simple_spinner_dropdown_item,gradeArray);
            spinnerGrade.setAdapter(gradeAdapter);
            //设置默认选中项
            spinnerGrade.setSelection(0);
            //获取按钮
            Button buttonOk = findViewById(R.id.buttonOk);
            //设置按钮点击监听器
            buttonOk.setOnClickListener(new MyOnClickListener());
        }
        //定义按钮点击监听器
        class MyOnClickListener implements View.OnClickListener {
            //按钮点击
            @Override
            public void onClick(View view) {
                if (view.getId() == R.id.buttonOk) {//被点击的是确认按钮
                    //获取选中项
                    Spinner spinnerGrade=findViewById(R.id.spinnerGrade);
                    //显示提示框
                    Toast.makeText(MainActivity.this, gradeArray[spinnerGrade.getSelectedItemPosition()] , Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
    

    5. 监听下拉框选中项

    当下拉框选中项发生改变时,弹窗显示新项目,代码如下:

    public class MainActivity extends AppCompatActivity {
        //内容数组
        String[] gradeArray={"初一","初二","初三","初四"};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Spinner spinnerGrade=findViewById(R.id.spinnerGrade);
            //数组适配器
            ArrayAdapter<String> gradeAdapter=new ArrayAdapter<>(this,R.layout.support_simple_spinner_dropdown_item,gradeArray);
            spinnerGrade.setAdapter(gradeAdapter);
            //设置默认选中项
            spinnerGrade.setSelection(0);
            //获取按钮
            Button buttonOk = findViewById(R.id.buttonOk);
            //设置按钮点击监听器
            buttonOk.setOnClickListener(new MyOnClickListener());
    
            spinnerGrade.setOnItemSelectedListener(new MyOnItemSelectedListener());
        }
    
        //定义按钮点击监听器
        class MyOnClickListener implements View.OnClickListener {
            //按钮点击
            @Override
            public void onClick(View view) {
                if (view.getId() == R.id.buttonOk) {//被点击的是确认按钮
                    //获取选中项
                    Spinner spinnerGrade=findViewById(R.id.spinnerGrade);
                    //显示提示框
                    Toast.makeText(MainActivity.this, gradeArray[spinnerGrade.getSelectedItemPosition()] , Toast.LENGTH_SHORT).show();
                }
            }
        }
    
        class MyOnItemSelectedListener implements AdapterView.OnItemSelectedListener {
            //选择
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this, gradeArray[i], Toast.LENGTH_SHORT).show();
            }
            //未选择
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        }
    }
    
    展开全文
  • 下拉菜单Spinner: android:dropDownHorizontalOffset:设置列表框的水平偏移距离 android:dropDownVerticalOffset:设置列表框的水平竖直距离 android:dropDownSelector:列表框被选中时的背景 android:...
    1、自定义样式
    // 建立Adapter并且绑定数据源
    ArrayAdapter<String> Adapter=new ArrayAdapter<String>(this,R.layout.main_liushuihao_stylespinner, mItems);
    其中R.layout.main_liushuihao_stylespinner 为自己写的xml,mItems是数据。
    
    private String[]  listall={"test1","test2","test3","test4","test5"};
     
     //点击用户名查出下拉框内容
            final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.spinner_item ,listall);//创建Arrayadapter适配器
            username.setOnTouchListener(new View.OnTouchListener() {
                //按住和松开的标识
                int touch_flag=0;
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    touch_flag++;
                    if(touch_flag==2){
                        touch_flag=0;
                     String[] city=res.getStringArray(R.array.province1);//将province中内容添加到数组city中
                        final Spinner spinner = (Spinner) findViewById(R.id.spinner1);//获取到spacer1
                        spinner.setAdapter(adapter);
                        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {//通过此方法为下拉列表设置点击事件
                            @Override
                            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                                text[0] = spinner.getItemAtPosition(i).toString();          
                               // Toast.makeText(Login.this, text[0], Toast.LENGTH_SHORT).show();
                            }
                            @Override
                            public void onNothingSelected(AdapterView<?> adapterView) {
                            }
                        });
    
                    } return false;
                }
            }
          
     
    
     
    
    下拉框二:
            Resources res =getResources();
            List<String> city = new ArrayList<String>();
            city.add("苹果");
            city.add("香蕉");
            city.add("橘子");
            city.add("香蕉");
            //String[] city=res.getStringArray(R.array.province1);//将province中内容添加到数组city中
            final Spinner spinner = (Spinner) findViewById(R.id.spacer1);//获取到spacer1
            final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,city);//创建Arrayadapter适配器
            spinner.setAdapter(adapter);
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {//通过此方法为下拉列表设置点击事件
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                    String text = spinner.getItemAtPosition(i).toString();
                    Toast.makeText(Login.this, text, Toast.LENGTH_SHORT).show();
                    }
    
                    @Override
                    public void onNothingSelected(AdapterView<?> adapterView) {
                 }
    
            });
    
    

    下拉菜单Spinner:
    android:dropDownHorizontalOffset:设置列表框的水平偏移距离
    android:dropDownVerticalOffset:设置列表框的水平竖直距离
    android:dropDownSelector:列表框被选中时的背景
    android:dropDownWidth:设置下拉列表框的宽度
    android:gravity:设置里面组件的对其方式
    android:popupBackground:设置列表框的背景
    android:prompt:设置对话框模式的列表框的提示信息(标题),只能够引用string.xml 中的资源id,而不能直接写字符串
    android:spinnerMode:列表框的模式,有两个可选值: dialog:对话框风格的窗口 dropdown:下拉菜单风格的窗口(默认)
    可选属性:android:entries:使用数组资源设置下拉列表框的列表项目

    展开全文
  • 用纯css改变下拉列表select框的默认样式 分享到 分类 JS学习 关键字 前端 发布 kris 2015-04-01 注意 转载须保留原文链接,译文... 下载: https://code.visualstudio.com/ (链接: https://pan.baidu.com/s/1nvz ...

    用纯css改变下拉列表select框的默认样式

    分享到

    分类 JS学习   关键字 前端   发布 kris  2015-04-01

    注意 转载须保留原文链接,译文链接,作者译者等信息。

    在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式。

    问题的提出

    事情是这样的,您的设计师团队向您发送一个新的PSD(Photoshop文档),它是一个新的网站的最终设计。

    75eb20b4ba9b24143453626d9bc820ff.png

    一切看起来很好,很正常,直到你看到他/她设计的一个选择下拉框跟浏览器默认提供的样式有些不同!你说:“这没办法做!你应该不会抱怨设计师,其实更改下拉输入的默认样式并不是非常难的!

    Mobile 和现代浏览器的解决方案

    下面是解决方案。

    我们看到默认的下载选择框在firefox和chrome中是有些不同的

    Chrome 和 Firefox 中分别是这样的:

    dfe63d9da1cb2c36227083f0297a673a.png

    8c932e3cfb94cbaf4cfa6e58654dfe6a.png

    其实用下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可。

    select {

    /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/

    border: solid 1px #000;

    /*很关键:将默认的select选择框样式清除*/

    appearance:none;

    -moz-appearance:none;

    -webkit-appearance:none;

    /*在选择框的最右侧中间显示小箭头图片*/

    background: url("http://ourjs.github.io/static/2015/arrow.png") no-repeat scroll right center transparent;

    /*为下拉小箭头留出一点位置,避免被文字覆盖*/

    padding-right: 14px;

    }

    /*清除ie的默认选择框样式清除,隐藏下拉箭头*/

    select::-ms-expand { display: none; }

    更新: 针对旧版IE的解决方案

    评论中提到 IE8/9并不支持  appearance:none  CSS属性,想要支持的话可能需要非常特殊的方法,参考SF: 我们需要为其添加一个父容器,容器是用来覆盖小箭头的,然后为select添加一个向右的小偏移或者宽度大于父级元素。设置父级的CSS属性为超出部分不可见,即可覆盖即小箭头。然后再为父级容器添加背景图片即可。

    HTML

    what

    the

    hell

    CSS

    #parent {

    background: url('yourimage') no-repeat;

    width: 100px;

    height: 30px;

    overflow: hidden;

    }

    #parent select {

    background: transparent;

    border: none;

    padding-left: 10px;

    width: 120px;

    height: 100%;

    }

    用纯css改变下拉列表select框的默认样式(不兼容IE10以下)

    在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式.     事情是这样的,您的设计师团队向您发送一个新的PSD(Photoshop文档),它是一个新的网站的最终设计 ...

    用纯css改变下拉列表select框的默认样式

    http://ourjs.com/detail/551b9b0529c8d81960000007 在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式. 问题的提出 事 ...

    &lbrack;转载&rsqb;用纯css改变下拉列表select框的默认样式

    在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式. 问题的提出 事情是这样的,您的设计师团队向您发送一个新的PSD(Photoshop文档),它是一个新的网站的最终 ...

    纯css改变下拉列表select框的默认样式

    下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可. select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下* ...

    CSS效果:CSS改变下拉列表select框的默认样式

    原理 原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可.当然右侧的小箭头可以用伪元素before或者after来实现. select { /*Chrome和Fir ...

    纯CSS实现tooltip提示框,CSS箭头及形状之续篇--给整个tooltip提示框加个边框

    在前面一篇中我们介绍了纯CSS实现tooltip提示框,通俗的讲也就是CSS箭头及形状 不过注意一点是,他始终是一个元素,只是通过CSS实现的,今天我们要说的是给这个“tooltip提示框”整体加一个 ...

    HTML复选框checkbox默认样式修改

    此方法可以将复选框的默认样式替换成任意样式.如图: 未选择: 选择时: 思路:将复选框隐藏,利用lebal元素的焦点传递特性,用lebal的样式替代复选框. 代码如下: ..

    用纯css改变默认的radio和checkbox的样式

    利用css的label的伪类(::before)代替checkbox和radio效果: 优点:需要图片来调整选中前和选中后的样式,纯css搞定 缺点:兼容性,IE8以下不支持 在线例子: css改变默 ...

    利用CSS3 filter&colon;drop-shadow实现纯CSS改变图片颜色

    体验更优排版请移步原文:http://blog.kwin.wang/programming/css3-filter-drop-shadow-change-color.html 之前做项目过程中有时候遇 ...

    随机推荐

    NET 2&period;0 OCR文字识别技术(Tesseract 引擎)[转]

    一.OCR简介  参见http://baike.baidu.com/view/17761.htm?fr=ala0_1  大家参照,我第一次也是这么了解的,呵呵.高手见笑 现在市面上好多OCR 引擎,不 ...

    Anniversary Party

    Time limit: 0.5 second Memory limit: 8 MB Background The president of the Ural State University is g ...

    Spring&plus;AOP&plus;Log4j 用注解的方式记录指定某个方法的日志

    一.spring aop execution表达式说明 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义 ...

    TR069网管测试华为ITMS平台&lpar;内部测试使用&rpar;

    声明:本篇华为ITMS平台仅用于学习和测试使用,如果需要商用,请购买正版软件! 原创作品,转载请注明出处,严禁非法转载或者用于商业目的! email:40879506@qq.com 一. 准备软件 V ...

    python3 词法拆分

    1.可以利用translate+string模块 2.可以利用jieba进行分词(结巴分词会分成词,但是我需要断句,所以这里不用) 3.利用python内置函数解决 仅仅只列出第3种方法,其他两种方法 ...

    JProfiler性能分析

    之前已经介绍过如何调试本地的JBoss.现在额外一篇文章关于如何远程调试Tomcat的,其实远程和本地的区别不大,主要区别只是,JProfiler的GUI运行在你本地,而JProfiler的Agent ...

    Python3&period;5 学习五

    心灵鸡汤电影推荐: 阿甘正传.辛德勒名单.肖申克的救赎.勇敢的心.角斗士.美国丽人.教父.钢琴师.指环王.西雅图不眠夜.廊桥遗梦.可可西里的美丽传说.放牛班的春天.血钻.战争之王.上帝之城.中央车站. ...

    Ubuntu 16&period;04&sol;Mac安装VSCode

    由于Atom打开大文件经常卡死的问题,我转到了VSCode了. 下载: https://code.visualstudio.com/ (链接: https://pan.baidu.com/s/1nvz ...

    展开全文
  • 主要为大家详细介绍了Android Studio绑定下拉框数据,Android Studio绑定网络JSON数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android Studio Spinner选择下拉框实现

    千次阅读 2020-01-21 19:05:32
    android . R . layout . simple_spinner_dropdown_item , getDataSource ( ) ) ; spinner . setAdapter ( adapter ) ; } public List < String > getDataSource ( ) { List < String > list = ...

    在.java文件中

    private Spinner spinner ;
    private ArrayAdapter adapter ;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jinjilxrsz);
    
        this.spinner =(Spinner) this.findViewById(R.id.spinner);
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_dropdown_item, getDataSource());
        spinner.setAdapter(adapter);
    
    }
    
    public List<String> getDataSource(){
        List<String> list = new ArrayList<String>() ;
        list.add("另一半");
        list.add("爸妈");
        list.add("子女");
        list.add("好友");
        list.add("亲戚");
        list.add("同学");
        list.add("同事");
        return list  ;
    }

    在.xml文件中

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="389dp"
        android:layout_height="57dp"
        android:layout_alignBottom="@+id/imageView8"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="234dp"
        android:layout_marginEnd="0dp"
        android:layout_marginBottom="12dp"
        android:textColor="#FFFFFF"
        android:textSize="25dp" />
    展开全文
  • 效果显示: 1、页面xml代码(项目的代码,直接复制会有错,自己... android:id="@+id/consultation_tv_section" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_abo
  • android spinner下拉框

    千次阅读 2017-03-10 08:13:03
    下拉框其实自己很少用到,不过昨天因为写界面时,自己用到了,当时忘记怎么写,...1.用android提供的spinner下拉框控件。 1.在布局里添加一个spinner控件 Spinner android:layout_width="match_parent"  
  • 1.我用adb devices命令想看看到底能不能检测到设备,结果显示adb.exe: failed to check server version: protocol fault (couldn't read status) 2.搜了下发现应该查端口占用的问题 3.结束占用5037端口的进程 ...
  • 使用spinner的时候,突然发现下拉框把spinner显示框给遮挡住了 然后我就在xml控件中添加属性 android:spinnerMode="dropdown" 发现还是没解决问题。。PS:dropdown是把列表以下拉框形式呈现出来,另一个dialog就是...
  • android spinner下拉框组件使用

    千次阅读 2016-09-02 06:36:46
    android下拉框spinner
  • 不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。 Spinner 与 Gallery 都继承了AbsSpinner,AbsSpinner 继承了AdapterView,因此它也表现出AdapterView的特征:只要为AdapterView...
  • 1.首先在Activity中定义一个Textview,如下所示 <TextView android:id="@+id/xuanze" style="@style/tv_debug" android:layout_width="150dp" ... android:drawableRight="@drawable/img_down
  • 不管在spinner的item中如何设置透明度,都无效,最后发现可以在Spinner定义的时候加上popupBackground这个属性,通过该属性可以定义spinner下拉框中的item的颜色和透明度。 &lt;Spinner android:id="@+id...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,448
精华内容 579
关键字:

androidstudio下拉框