UI组件之Spinner
Spinner其实就是一个列表选择框
Spinner的三种实现方法:
方法一:在布局文件中实现,通过entries实现绑定资源数组中的数据
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner_city"
android:entries="@array/city"
android:layout_alignParentStart="true" />
资源数组中的数据:
<string-array name="city">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
<item>天津</item>
</string-array>
方法二:在代码中实现,通过new一个ArrayAdapter对象,创建字符串数组,将字符串数组绑定ArrayAdapter
Spinner spinner = (Spinner) findViewById(R.id.spinner_role);
String[] strings = {"管理员", "VIP", "普通会员", "游客"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, strings);
spinner.setAdapter(adapter);
方法二:在代码中实现,通过ArrayAdapter的createFromResource方法绑定资源数组文件:
Spinner spinneNum= (Spinner) findViewById(R.id.spinner_num);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_dropdown_item);
spinneNum.setAdapter(adapter);
demo
资源数组文件代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="city">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
<item>天津</item>
</string-array>
</resources>
主布局文件代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner_city"
android:entries="@array/city"
android:layout_alignParentStart="true" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner_role"
android:layout_below="@+id/spinner_city"
android:layout_alignParentStart="true" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner_num"
android:layout_below="@+id/spinner_role"
android:layout_alignParentStart="true" />
</RelativeLayout>
Activity代码
package com.shake.day8_android_1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 在代码中实现,通过new一个ArrayAdapter对象,创建字符串数组,将字符串数组绑定ArrayAdapter
*/
createSpinner1();
/**
* 在代码中实现,通过ArrayAdapter的createFromResource方法绑定资源数组文件:
*/
createSpinner2();
}
private void createSpinner2() {
Spinner spinneNum= (Spinner) findViewById(R.id.spinner_num);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_dropdown_item);
spinneNum.setAdapter(adapter);
}
private void createSpinner1() {
Spinner spinner = (Spinner) findViewById(R.id.spinner_role);
String[] strings = {"管理员", "VIP", "普通会员", "游客"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, strings);
spinner.setAdapter(adapter);
}
}
效果