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



