前言
声明
欢迎转载,但请保留文章原始出处:)
正文
一、结构
public final class spinner extends absspinner
java.lang.object
android.view.viewgroup
android.widget.adapterview<t extends android.widget.adapter>
android.widget.absspinner
android.widget.spinner
二、概述

下拉列表(spinner)是一个每次只能选择所有项中一项的部件。它的项来自于与之相关联的适配器中。
三、xml属性
属性名称
描述
android:prompt
该提示在下拉列表对话框显示时显示。(译者注:对话框的标题:
四、公共方法
public int getbaseline()
返回这个控件文本基线的偏移量。如果这个控件不支持基线对齐,那么方法返回-1.
返回值
返回控件基线左边边界位置,不支持时返回-1
(译者注:这个类不知道干什么用,只找到下面的代码:
public class androidbamboo extends activity
{
public void oncreate( bundle savedinstancestate )
{
super.oncreate ( savedinstancestate );
spinner spinner = new spinner ( this );
spinner.setprompt( "500" );
string [ ] items = { "bam", "boo", "lab", "code", "programming", "framework", "android" };
arrayadapter array_adapter = new arrayadapter <string> ( this, android.r.layout.simple_spinner_item, items );
array_adapter.setdropdownviewresource ( android.r.layout.simple_spinner_dropdown_item );
spinner.setadapter ( array_adapter );
int baseline = spinner.getbaseline ( );
setcontentview ( spinner );
}
}
public charsequence getprompt()
返回值
当对话框弹出的时候显示的提示(译者注:获得弹出视图上的标题字)
public void onclick(dialoginterface dialog, int which)
当点击弹出框中的项时这个方法将被调用。
参数
dialog 点击弹出的对话框
which 点击按钮(如:button)或者点击位置
public boolean performclick()
如果它被定义就调用此视图的onclicklistener(译者注:例如可以在加载时默认弹出下拉列表)。
返回值
为true一个指定的onclicklistener被调用,为false时不被调用。
public void setonitemclicklistener(adapterview.onitemclicklistener i)
spinner不支持item的点击事件,调用此方法将引发异常。
参数
l 这个监听将被忽略
public void setpromptid(charsequence prompt)
设置对话框弹出的时候显示的提示(译者注:设置弹出视图上的标题字)
prompt 设置的提示
public void setpromptid(int promptid)
prompted 当对话框显示是显示这个资源id所代表的提示。
五、受保护方法
protected void ondetachedfromwindow ()
当这个视图从屏幕上卸载时候被调用。在这一点上不再绘制视图。
protected void onlayout (boolean changed, int l, int t, int r, int b)
当view要为所有子对象分配大小和位置时,调用此方法。派生类与子项们应该重载这个方法和调用布局每一个子项。
参数
changed 这是这个视图的一个新的大小或位置
l 相对父空间的左位置
t 相对父空间的顶端位置
r 相对父空间的右端位置
b 相对父空间的底部位置
参见
六、补充
文章链接
示例代码
java代码
public class spinneractivity extends activity {
/** called when the activity is first created. */
string mes = "wolf";
private static final string[] m_arr = {"第一组","第二组","第三组"};
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
spinner s1 = (spinner)findviewbyid(r.id.spinner01);
s1.setprompt("请选择颜色" );
//arrayadapter adapter = arrayadapter.createfromresource(this, r.array.spinnercolor,android.r.layout.simple_spinner_item);
arrayadapter<string> adapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_item, m_arr);
adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
s1.setadapter(adapter);
s1.setselection(1,true);
//s1.setpromptid(context_include_code);
int baseline = s1.getbaseline();
s1.performclick();
s1.setonitemselectedlistener(new spinner.onitemselectedlistener(){
public void onitemselected(adapterview<?> arg0, view arg1, int arg2, long arg3){
disptoast("选择的是"+m_arr[arg2]);
arg0.setvisibility(view.visible);
}
public void onnothingselected(adapterview<?> arg0){
//
});
toast.maketext(this, s1.getprompt() ,toast.length_long).show();
public void disptoast(string str){
toast.maketext(this, str, toast.length_short).show();
}
xml资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">hello world, spinneractivity!</string>
<string name="app_name">spinner测试</string>
<string-array name="spinnercolor">
<item>红色</item>
<item>绿色</item>
<item>白色</item>
<item>橙色</item>
</string-array>
<string name="planet_prompt">please choose a item!</string>
</resources>
结束
感谢"思考的狼"为文章提供完善的翻译及示例:)
转载:http://www.cnblogs.com/over140/archive/2010/11/17/1879794.html