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