阅读 231

Spinner下拉框实验

Spinner下拉框实验

原创:  灵思致远 4天前

1. 实验内容简介

Spinner同RadioGroup一样,多个子元素组合成一个Spinner。多个子元素之间相互影响,最多只能有一个被选中。Spinner通过数组适配器读取定义的子元素。这种设计方式被称为适配器模式,适配器模式建议定义一个包装类,包装有不兼容接口的对象。

适配器:在安卓中,顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。也就是说适配器是数据和界面之间的桥梁。

适配器在数据库中的数据(后台)和显示页面(前端)中充当一个转换器的角色,数据库中的数据(如数组,链表,数据库,集合等)通过适配器变成类手机页面能够正常显示的数据。可以看作是界面数据绑定的一种理解。假设把数据、适配器和ListView(页面)比喻成一个MVC模式的话,那么适配器(Adapter)在这中间就充当了Controller的角色。  

使用步骤:

步骤1:声明Spinner变量

步骤2:通过FindViewById绑定,设置数据源和适配器

步骤3:监听用户输入动作

 

2. UI界面布局



对应的大纲:

新建XML文件设置数据源,在 res文件夹下的 values 文件夹下新建一 xml文件,命名为 array.xml 。打开并添加如下代码: 。

<?xml version="1.0"encoding="utf-8"?>

<resourcesxmlns:android="http://schemas.android.com/apk/res/android">

    <string-array  name="fruits">

        <item >苹果</item>

        <item >梨子</item>

        <item >西瓜</item>

        <item >桔子</item>

    </string-array>

  </resources>

3. 代码编写和调试

public class MainActivity extends Activity {

    Spinner spinner1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        spinner1 =(Spinner) findViewById(R.id.spinner1);

        // 新建数组适配器并关联XML的array数据

        ArrayAdapter<CharSequence>adapter = ArrayAdapter.createFromResource(

                this,R.array.fruits, android.R.layout.simple_spinner_item);

        // 设置数组适配器显示样式

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // 下拉列表关联适配器

        spinner1.setAdapter(adapter);

        // 监听下拉列表

        spinner1.setOnItemSelectedListener(newOnItemSelectedListener() {

            @Override

            public void onItemSelected(AdapterView<?> parent, View view,

                   intposition, long id) {

                Toast.makeText(

                       MainActivity.this,

                       "选择的水果:"

                              +parent.getItemAtPosition(position).toString(),

                       Toast.LENGTH_SHORT).show();

            }

            @Override

            public void onNothingSelected(AdapterView<?> parent) {

                Toast.makeText(MainActivity.this,"没有选择", Toast.LENGTH_SHORT)

                       .show();

            }

        });

    }

}



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/leansmall/article/details/80381209


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐