android中下拉列表的选中事件

本文介绍了在Android中如何处理Spinner的下拉列表选中事件。通过设置`android:entries`属性从资源文件加载选项,并实现`AdapterView.OnItemSelectedListener`接口来监听选中变化。当选中条目时,内容会显示在EditText中。示例代码展示了具体实现过程,提供了运行效果和源码下载链接。
  1. MainActivity的布局文件代码如下,加入一个表示姓名的下拉列表:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <EditText
            android:id="@+id/edit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
        <Spinner
            android:layout_gravity="center"
            android:id="@+id/spinnerClick"
            android:layout_width="180dp"
            android:layout_height="60dp"
            android:entries="@array/names"/>
    </LinearLayout>

    在 Spinner 的几个属性中,读者可能会对 android∶entries 属性相对陌生一些。它是用来选择 Spinner 下拉选项内容的属性。在开发时,我们会在 res/values 中新建数组作为此属性的内容,向 Spinner 的下拉选项中注入数据。因此,我们在 res/values 中新建一个name.xml,并建立一个数组∶

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
          <string-array name="names">
            <item>王明</item>
            <item>王丽</item>
            <item>王刚</item>
            <item>杨丽</item>
            <item>王一凡</item>
        </string-array>
    </resources>

     

  2. 使 MainActivity 实现下拉列表的事件处理接口 AdapterView.OnItemSelectedListener,其实是下拉列表某个条目的处理接口。然后实现该接口的处理方法,MainActivity 代码如下∶
    package com.rfstar.spinnertest;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.EditText;
    import android.widget.Spinner;
    
    public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
    EditText editText;
    Spinner spinner;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            editText=(EditText)findViewById(R.id.edit);
            spinner=(Spinner)findViewById(R.id.spinnerClick);
            spinner.setOnItemSelectedListener(this);
        }
    
    @Override
        public void onItemSelected(AdapterView<?> parent, View view, int i, long l) {
            String value=parent.getItemAtPosition(i).toString();
            editText.setText("您的名字是:"+value);
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
      }
    }

    特殊的是,它有两个实现方法,前者是选中某个条目之后的处理方法,后者是没有任何条目被选中的处理方法。当选中某条时,让它显示到 EditText 中。

    运行效果如下:这里选中的名字是王刚,EditText就显示出来了。源码下载地址:链接:https://pan.baidu.com/s/1ExoSxaQRdjmwUUnDuSbUIQ 提取码:43ka

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值