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.運行結果

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM