Spinner

博客介绍了Spinner组件,它能让用户从一组值中快速选择,默认显示当前值,触摸会显示下拉列表。还提及了两种绑定数据的方法,一是通过android:entries=\@array/city\连接city,二是动态的数据绑定方式。

       Spinner提供一个快速的方法从一组选择一个值,在默认状态Spinner显示当前选择的值,触摸Spinner与其他可用值显示一个下拉列表,用户可以选择一个新的。

最简单的绑定数据方法:

//strings.xml
<array name="city">
        <item>北京</item>
        <item>上海</item>
        <item>广州</item>
        <item>天津</item>
        <item>大连</item>
        <item>郑州</item>
    </array>

//spinner.xml
<Spinner
        android:id="@+id/spinner_city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/city"/>

android:entries="@array/city"设置连接city

 

动态的数据绑定方式:

//MainActivity.java
public class MainActivity extends AppCompatActivity {

    private Spinner spinner_role;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner);
        spinner_role = findViewById(R.id.spinner_role);

        String[] roles = {"管理员","VIP会员","普通会员","游客"};

        //方式一:
        //创建一个数组适配器(上下文,下拉列表里的布局,显示下拉选项的组件ID,数据)
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,android.R.id.text1,roles);
        //通过适配器进行适配器的绑定

        //方式二
        //参数:上下文,数据,布局
        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,R.array.city,android.R.layout.simple_spinner_dropdown_item);
        //adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_role.setAdapter(adapter2);
    }
}
//spinner.xml
<Spinner
        android:id="@+id/spinner_role"
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="0dp" />

//方式二需要strings.xml
<array name="city">
        <item>北京</item>
        <item>上海</item>
        <item>广州</item>
        <item>天津</item>
        <item>大连</item>
        <item>郑州</item>
    </array>

 

 

 

 

03-26
### Spinner 的基本使用方法 SpinnerAndroid 中用于显示下拉列表的一种控件。通过设置 Adapter 和监听事件,可以实现动态加载数据以及响应用户的交互操作。 以下是基于所提供的引用内容整理的关于 Spinner 的具体用法: #### 1. 基本初始化与适配器绑定 在 XML 文件中定义 Spinner 控件后,在 Activity 或 Fragment 中可以通过 `findViewById` 获取该控件实例并为其配置适配器[^1]。 下面是一个完整的代码示例,展示了如何创建一个简单的 Spinner 并填充整型数组的数据: ```java // 初始化 Spinner Spinner spinner = findViewById(R.id.spinner); // 定义要展示的数据集合 List<Integer> values = Arrays.asList(1, 2, 3, 4, 5); // 创建 ArrayAdapter 实例 ArrayAdapter<Integer> arrayAdapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, // 单项布局样式 values // 数据源 ); arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 设置下拉菜单样式 spinner.setAdapter(arrayAdapter); // 将适配器应用到 Spinner 上 ``` 上述代码中的 `setDropDownViewResource()` 方法用于指定下拉框内的视图资源文件[^3]。如果省略此调用,默认会采用简单文本形式呈现选项。 #### 2. 材质设计风格的 Spinner —— MaterialSpinner 对于追求更现代化界面效果的应用程序来说,可以考虑引入第三方库 **MaterialSpinner** 提供的支持[^2]。其主要特点在于支持自定义外观属性(如颜色、字体大小等),并且兼容旧版本设备上的表现一致性。 添加依赖项至 build.gradle 文件: ```gradle implementation 'com.github.ma:MaterialSpinner:x.y.z' // 替换 x.y.z 为实际最新版号 ``` 接着按照官方文档说明完成相应配置即可享受增强功能带来的便利之处。 #### 3. 处理用户选择行为 为了捕获当某个条目被选定时触发的动作,需注册 OnItemSelectedListener 接口对象给目标组件[^4]: ```java spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Integer selectedItem = (Integer) parent.getItemAtPosition(position); Log.d("SPINNER", "Selected item is: " + selectedItem); } @Override public void onNothingSelected(AdapterView<?> parent) { // 当未选定任何项目时执行的操作 } }); ``` 以上片段演示了怎样获取当前所选索引位置及其关联值,并打印日志消息记录下来以便调试分析之用。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值