Spinner组件与Swing编程中的Spinner不同,此处的Spinner其实就是一个列表选择框。不过android的列表选择框并不需要显示下拉框列表,而是相当于弹出一个菜单供用户选择。
Spinner与Gallery都集成了AbsSpinner,AbsSpinner继承了AdapterView,因此他也表现出AdapterView的特征:只要为AdapterView提供Adapter即可。
Spinner支持的常用XML属性及相关方法:
实列;让用户选择
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context="com.dezai.spinner.MainActivity">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/books"
android:prompt="@string/tip">
</Spinner>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner"
android:prompt="@string/tip">
</Spinner>
</LinearLayout>
books.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item>JAVA</item>
<item>C#</item>
<item>PHP</item>
<item>Perl</item>
<item>Python</item>
</string-array>
</resources>
java
package com.dezai.spinner;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner=(Spinner) findViewById(R.id.spinner);
String[] arr={"小明","小王","小李"};
//创建ArrayAdapter 对象
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,arr);
//为Spinner.setAdapter(adapter);
spinner.setAdapter(adapter);
}
}