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.运行结果

  

原文地址:https://www.cnblogs.com/does/p/12795980.html