分类: 系统运维
2012-02-06 21:43:37
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AdapterView
android.widget.AbsSpinner
android.widget.Spinner
public CharSequence getPrompt () 取得提示文字
void setPrompt(CharSequence prompt) 设置组件的提示文字
void setAdapter(SpinnerAdapter adapter) 设置下拉列表项
public CharSequence getprompt()得到提示信息
public void setonItemCllickListener(AdapterView.OnItemClickListener)设置选项单击事件
在Spinner类中的setAdapter()方法,表示的是设置下拉列表框中的显示内容。SpinnerAdapter的功能就是一个适配器,会将所需要的数据进行包装并放在Spinner之中
在android中,可以直接在main.xml中配定
1直接通过资源文件配置
2通过Android.widget.ArrayAdapter类读取资源文件或者是指定具体设置的数据
配置Spinner:
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
对于Spinner的内容可以直接在 values文件夹中定义若干个资源文件。例如,以上如果要定义一个表示城市信息的下拉列表,则可以定义一个city_data.xml
city_data.xml
此表示配置了一个下拉选项,如果要想配置这个选项,则可以直接通过
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/city_labels"/> 配置所有下拉列表框中的显示内容,而此内容是通过city_data.xml文件之中加载进来的
配置下拉列表框中的prompt提示信息:
如果要想使用此信息,就急需修改
android:prompt="@string/city_prompt" 加入提示信息
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/city_labels"/>
方式二:通过android.widget.ArrayAdapter类
color_data.xml
这个配置文件将在ArrayAdapter类中进行读取,需要定义Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择颜色" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
在封装之前要使用ArrayAdapter
xxActivity.java
package your.packafge.namespace;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerProjectActivity extends Activity
{
private Spinner spiColor = null ;//表示要读取的颜色列表框
private ArrayAdapter
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.spiColor = (Spinner)super.findViewById(R.id.mycolor);//取得颜色的下拉框
this.spiColor.setPrompt("请选择喜欢的颜色:") ;
this.adapterColor = ArrayAdapter.createFromResource(this,R.array.color_labels,android.R.layout.simple_spinner_item) ;//实例化ArrayAdapter
this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) ;//设置格式
this.spiColor.setAdapter(this.adapterColor) ;//设置显示信息
}
}
对于 ArrayAdapter,除了读取资源文件以外,还可能需要通过程序动态生成,所以需使用ArrayAdapter的另一种形式
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择学历" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
xxActivity.java
package your.packafge.namespace;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class SpinnerProjectActivity extends Activity
{
private Spinner spiColor = null ;//表示要读取的颜色列表框
private Spinner spiEdu = null ;//定义下拉列表
private ArrayAdapter
private ArrayAdapter
private List
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.spiColor = (Spinner)super.findViewById(R.id.mycolor);//取得颜色的下拉框
this.spiColor.setPrompt("请选择喜欢的颜色:") ;
this.adapterColor = ArrayAdapter.createFromResource(this,R.array.color_labels,android.R.layout.simple_spinner_item) ;//实例化ArrayAdapter
this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) ;//换个风格
this.spiColor.setAdapter(this.adapterColor) ;//设置显示信息
//配置List集合包装的下拉框内容
this.dataEdu = new ArrayList
this.dataEdu.add("大学") ;
this.dataEdu.add("研究生") ;
this.dataEdu.add("高中生") ;
this.spiEdu = (Spinner)super.findViewById(R.id.myedu);//取得学历下拉框
this.spiEdu.setPrompt("选择你喜欢的学历:") ;
this.adapterEdu = new ArrayAdapter
this.adapterEdu.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) ;
this.spiEdu.setAdapter(this.adapterEdu) ;
}
}
大部分情况都是利用资源文件方式配置的。 如果要求动态配置下拉内容的话,就必须理解上述方法了。