Spinner提供一个快速的方法从一组选择一个值,在默认状态Spinner显示当前选择的值,触摸Spinner与其他可用值显示一个下拉列表,用户可以选择一个新的。
最简单的绑定数据方法:
//strings.xml
<array name="city">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>天津</item>
<item>大连</item>
<item>郑州</item>
</array>
//spinner.xml
<Spinner
android:id="@+id/spinner_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:entries="@array/city"/>
android:entries="@array/city"设置连接city
动态的数据绑定方式:
//MainActivity.java
public class MainActivity extends AppCompatActivity {
private Spinner spinner_role;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner);
spinner_role = findViewById(R.id.spinner_role);
String[] roles = {"管理员","VIP会员","普通会员","游客"};
//方式一:
//创建一个数组适配器(上下文,下拉列表里的布局,显示下拉选项的组件ID,数据)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,android.R.id.text1,roles);
//通过适配器进行适配器的绑定
//方式二
//参数:上下文,数据,布局
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,R.array.city,android.R.layout.simple_spinner_dropdown_item);
//adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_role.setAdapter(adapter2);
}
}
//spinner.xml
<Spinner
android:id="@+id/spinner_role"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="0dp" />
//方式二需要strings.xml
<array name="city">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>天津</item>
<item>大连</item>
<item>郑州</item>
</array>