前言
本章内容是 android.widget.Spinner,译为"下拉列表",版本为Android 2.2 r1,翻译来自"思考的狼",欢迎大家访问他的博客:http://blog.163.com/sikaodelang@126/ ,再次感谢"思考的狼" !期待你一起参与Android API 的中文翻译,联系我[email protected]。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com/
Android中文翻译组:http://www.cnblogs.com/over140/
正文
一、结构
public final class Spinner extends AbsSpinner
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AdapterView
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 相对父空间的底部位置
参见
Creates and positions all views
六、补充
文章链接
Android学习指南——Spinner 下拉列表
android自定义Spinner下拉菜单(下拉列表框)样式
示例代码
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
>
结束
感谢"思考的狼"为文章提供完善的翻译及示例:)