Android Spinner下拉框的基本使用和获取选中的值

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

一、使用数组作为数据源

1.新建一个android的工程
2.在layout.xml文件中声明一个TextView控件(用于显示下拉框选中的值)和一个Spinner控件

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".Main3Activity">
   
      <EditText
         android:id="@+id/editText4"
         android:layout_width="200dp"
         android:layout_height="wrap_content"
         android:hint= />
  
     <Spinner
         android:id="@+id/spinner"
         android:layout_width="200dp"
         android:layout_height="wrap_content"/>
  
</androidx.constraintlayout.widget.ConstraintLayout>

3.java代码

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import android.widget.AdapterView.*;
public class Main3Activity extends AppCompatActivity {
  
     static final String[] color = {"红色","蓝色","绿色","紫色","粉色"};
     EditText show;
     Spinner spinnerItems;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main3);
  
         show = findViewById(R.id.editText4);
         spinnerItems = findViewById(R.id.spinner);
         //添加Spinner监听事件
         spinnerItems.setOnItemSelectedListener(new OnItemSelectedListener() {
             @Override
             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 show.setText("选中的颜色是:"+color[position]);
             }
             @Override
             public void onNothingSelected(AdapterView<?> parent) {
             }
         });
     }
}

4.运行结果


二、使用XML作为数据源
1.新建一个android的工程
2.在values文件夹下新建一个array.xml文件

3.在layout.xml文件中声明一个TextView控件(用于显示下拉框选中的值)和一个Spinner控件
在布局文件的Spinner控件中添加:android:entries="@array/spinnerclass"

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".Main3Activity">
  
     <EditText
         android:id="@+id/editText4"
         android:layout_width="200dp"
         android:layout_height="wrap_content"
         android:hint=
          />
  
     <Spinner
         android:id="@+id/spinner"
         android:layout_width="200dp"
         android:layout_height="wrap_content"
         android:entries="@array/spinnerclass"
     />
  
</androidx.constraintlayout.widget.ConstraintLayout>

4.java代码

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import android.widget.AdapterView.*;
public class Main3Activity extends AppCompatActivity {
  
     String[] color;
     EditText show;
     Spinner spinnerItems;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main3);
  
         show = findViewById(R.id.editText4);
         spinnerItems = findViewById(R.id.spinner);
         //获取array中定义的值
         color = getResources().getStringArray(R.array.spinnerclass);
         //添加Spinner监听事件
         spinnerItems.setOnItemSelectedListener(new OnItemSelectedListener() {
             @Override
             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 show.setText("选中的颜色是:"+color[position]);
             }
             @Override
             public void onNothingSelected(AdapterView<?> parent) {
             }
         });
     }
}

5.运行结果


全部评论

相关推荐

不愿透露姓名的神秘牛友
2024-12-18 15:35
程序员牛肉:完全是在胡写简历。 我很好奇你干嘛要在教育经历里面写你是软件二班的班长?你写它的目的是什么?我觉得真的就是很突兀。给我第一感觉就是:你真的是一个心智健全的成年人吗? 另外我也很好奇你是怎么做到参加了这么多所谓的计算机比赛,完事儿一个拿得出手的项目都没有。 自己的项目经历还是图书馆管理系统这种垃圾东西……我的的建议是你都不如大幅度删减一下自己的水奖项,看着真的给人一种又水又学傻了的感觉。 计算机不看奖项,看院校和个人能力。 计算机是强工科,你要投后端的你就应该明白,人家招你进去是指望你干活儿的。那你觉得你这份简历有展示出你的后端水平吗? 你动动你的脑子想一想,人家面试官要想通过你的简历看出你的项目开发能力,最重要的板块就是两个,第一个是你的实习,第二个是你的项目。你没有实习,是不是就应该在项目上好好琢磨琢磨? 你自己看看你项目写的什么描述,你作为一个要后端岗位的应届生,你对你自己项目的描述还仅仅停留在使用mySQL,使用JAVA,使用spring boot框架。给人一眼感觉就感觉完全就是你做的玩具。可能就是你哪一个学期做的课设。 对于应届生来讲,在项目板块要尽量突出自己的技术能力,因为谈业务你肯定也不懂。简单来讲,你的项目要清晰准确的表达:你用哪种技术解决了现有的哪种技术问题,带来了多少的效益提升? 所有关于项目的描述都围绕我说的这种表达方式去写。不要自己自嗨式的写一堆垃圾上去 你既没有实习项目,又没有一个比较好一点的项目,而且院校也比较差,所以找工作会异常的难找。
点赞 评论 收藏
分享
2024-12-30 22:49
长沙理工大学 Java
神哥了不得:没什么可以指导的地方了,简历确实牛,我大号分享过投递策略,广投就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务