public class Spinner
extends AbsSpinner
implements DialogInterface.OnClickListener
java.lang.Object | |||||
↳ | android.view.View | ||||
↳ | android.view.ViewGroup | ||||
↳ | android.widget.AdapterView<android.widget.SpinnerAdapter> | ||||
↳ | android.widget.AbsSpinner | ||||
↳ | android.widget.Spinner |
Known Direct Subclasses |
一次显示一个孩子并让用户从中选择一个孩子的视图。 Spinner中的项目来自与此视图相关的Adapter
。
请参阅 Spinners指南。
XML attributes |
|
---|---|
android:dropDownHorizontalOffset |
Amount of pixels by which the drop down should be offset horizontally. |
android:dropDownSelector |
List selector to use for spinnerMode="dropdown" display. |
android:dropDownVerticalOffset |
Amount of pixels by which the drop down should be offset vertically. |
android:dropDownWidth |
Width of the dropdown in spinnerMode="dropdown". |
android:gravity |
Gravity setting for positioning the currently selected item. |
android:popupBackground |
Background drawable to use for the dropdown in spinnerMode="dropdown". |
android:prompt |
The prompt to display when the spinner's dialog is shown. |
android:spinnerMode |
Display mode for spinner options. |
Inherited XML attributes |
|
---|---|
From class android.widget.AbsSpinner
|
|
From class android.view.ViewGroup
|
|
From class android.view.View
|
Constants |
|
---|---|
int |
MODE_DIALOG 使用对话窗口选择微调器选项。 |
int |
MODE_DROPDOWN 使用固定到Spinner的下拉列表来选择微调器选项。 |
Inherited constants |
---|
From class android.widget.AdapterView
|
From class android.view.ViewGroup
|
From class android.view.View
|
Inherited fields |
---|
From class android.view.View
|
Public constructors |
|
---|---|
Spinner(Context context) 用给定的上下文主题构造一个新的微调器。 |
|
Spinner(Context context, int mode) 使用给定的上下文主题和显示选项的提供模式构造一个新的微调控件。 |
|
Spinner(Context context, AttributeSet attrs) 使用给定的上下文主题和提供的属性集构造一个新的微调控件。 |
|
Spinner(Context context, AttributeSet attrs, int defStyleAttr) 使用给定的上下文主题,提供的属性集和默认样式属性构造一个新的微调控件。 |
|
Spinner(Context context, AttributeSet attrs, int defStyleAttr, int mode) 使用给定的上下文主题,提供的属性集和默认样式属性构造一个新的微调控件。 |
|
Spinner(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode) 使用给定的上下文主题,提供的属性集和默认样式构造一个新的微调控件。 |
|
Spinner(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode, Resources.Theme popupTheme) 使用给定的上下文,提供的属性集,默认样式,弹出模式( |
Public methods |
|
---|---|
CharSequence |
getAccessibilityClassName() 返回此对象的类名称以用于辅助功能。 |
int |
getBaseline() 从小部件的顶部边界返回小部件文本基线的偏移量。 |
int |
getDropDownHorizontalOffset() 为微调器的选择弹出窗口获取配置的像素水平偏移量。 |
int |
getDropDownVerticalOffset() 为微调器的选择弹出窗口获取配置的像素垂直偏移量。 |
int |
getDropDownWidth() 以像素为单位获取微调器弹出窗口选项的配置宽度。 |
int |
getGravity() 介绍所选项目视图的位置。 |
Drawable |
getPopupBackground() 获取微调器弹出窗口选项的背景可绘制。 |
Context |
getPopupContext() |
CharSequence |
getPrompt() |
void |
onClick(DialogInterface dialog, int which) 当单击对话框中的按钮时,将调用此方法。 |
void |
onRestoreInstanceState(Parcelable state) 吊钩允许视图重新应用以前由 |
Parcelable |
onSaveInstanceState() 钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 |
boolean |
onTouchEvent(MotionEvent event) 实现此方法来处理触摸屏幕动作事件。 |
boolean |
performClick() 调用此视图的OnClickListener(如果已定义)。 |
void |
setAdapter(SpinnerAdapter adapter) 设置用于提供支持此微调器的数据的 |
void |
setDropDownHorizontalOffset(int pixels) 为微调器的选择弹出窗口设置水平偏移像素。 |
void |
setDropDownVerticalOffset(int pixels) 为微调器的选择弹出窗口设置像素的垂直偏移量。 |
void |
setDropDownWidth(int pixels) 以像素为单位设置选框的弹出窗口的宽度。 |
void |
setEnabled(boolean enabled) 设置此视图的启用状态。 |
void |
setGravity(int gravity) 介绍所选项目视图的位置。 |
void |
setOnItemClickListener(AdapterView.OnItemClickListener l) 微调不支持项目点击事件。 |
void |
setPopupBackgroundDrawable(Drawable background) 为微调器的选择弹出窗口设置背景可绘制。 |
void |
setPopupBackgroundResource(int resId) 为微调器的选择弹出窗口设置背景可绘制。 |
void |
setPrompt(CharSequence prompt) 设置显示对话框时显示的提示。 |
void |
setPromptId(int promptId) 设置显示对话框时显示的提示。 |
Protected methods |
|
---|---|
void |
onDetachedFromWindow() 这是在视图从窗口分离时调用的。 |
void |
onLayout(boolean changed, int l, int t, int r, int b) 当这个视图为每个孩子分配一个大小和位置时,从布局调用。 |
void |
onMeasure(int widthMeasureSpec, int heightMeasureSpec) 测量视图及其内容以确定测量宽度和测量高度。 |
Inherited methods |
|
---|---|
From class android.widget.AbsSpinner
|
|
From class android.widget.AdapterView
|
|
From class android.view.ViewGroup
|
|
From class android.view.View
|
|
From class java.lang.Object
|
|
From interface android.view.ViewParent
|
|
From interface android.view.ViewManager
|
|
From interface android.graphics.drawable.Drawable.Callback
|
|
From interface android.view.KeyEvent.Callback
|
|
From interface android.view.accessibility.AccessibilityEventSource
|
|
From interface android.content.DialogInterface.OnClickListener
|
下拉应该水平偏移的像素数量。
必须是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 dropDownHorizontalOffset
。
相关方法:
列表选择器用于spinnerMode =“下拉”显示。
可能是另一种资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
颜色值可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”的形式。
这对应于全局属性资源符号 dropDownSelector
。
下拉应该垂直偏移的像素数量。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 dropDownVerticalOffset
。
相关方法:
spinnerMode =“dropdown”下拉的宽度。
可能是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
可能是以下常数值之一。
Constant | Value | 描述 |
---|---|---|
fill_parent |
-1 | The dropdown should fill the width of the screen. This constant is deprecated starting from API Level 8 and is replaced by match_parent . |
match_parent |
-1 | The dropdown should fit the width of the screen. Introduced in API Level 8. |
wrap_content |
-2 | The dropdown should fit the width of its anchor. |
这对应于全局属性资源符号 dropDownWidth
。
相关方法:
用于定位当前选定项目的重力设置。
必须是以下常量值中的一个或多个(用'|'分隔)。
Constant | Value | 描述 |
---|---|---|
top |
0x30 | Push object to the top of its container, not changing its size. |
bottom |
0x50 | Push object to the bottom of its container, not changing its size. |
left |
0x03 | Push object to the left of its container, not changing its size. |
right |
0x05 | Push object to the right of its container, not changing its size. |
center_vertical |
0x10 | Place object in the vertical center of its container, not changing its size. |
fill_vertical |
0x70 | Grow the vertical size of the object if needed so it completely fills its container. |
center_horizontal |
0x01 | Place object in the horizontal center of its container, not changing its size. |
fill_horizontal |
0x07 | Grow the horizontal size of the object if needed so it completely fills its container. |
center |
0x11 | Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. |
fill |
0x77 | Grow the horizontal and vertical size of the object if needed so it completely fills its container. |
clip_vertical |
0x80 | Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip will be based on the vertical gravity: a top gravity will clip the bottom edge, a bottom gravity will clip the top edge, and neither will clip both edges. |
clip_horizontal |
0x08 | Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip will be based on the horizontal gravity: a left gravity will clip the right edge, a right gravity will clip the left edge, and neither will clip both edges. |
start |
0x00800003 | Push object to the beginning of its container, not changing its size. |
end |
0x00800005 | Push object to the end of its container, not changing its size. |
这对应于全局属性资源符号 gravity
。
相关方法:
后台可用于spinnerMode =“dropdown”下拉菜单。
可能是另一种资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这对应于全局属性资源符号 popupBackground
。
相关方法:
显示微调器对话框时显示的提示。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 prompt
。
旋转器选项的显示模式。
必须是下列常数值之一。
Constant | Value | 描述 |
---|---|---|
dialog |
0 | Spinner options will be presented to the user as a dialog window. |
dropdown |
1 | Spinner options will be presented to the user as an inline dropdown anchored to the spinner widget itself. |
这对应于全局属性资源符号 spinnerMode
。
Spinner (Context context)
用给定的上下文主题构造一个新的微调器。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
Spinner (Context context, int mode)
使用给定的上下文主题和显示选项的提供模式构造一个新的微调控件。 mode
可能是MODE_DIALOG
或MODE_DROPDOWN
。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
mode |
int : Constant describing how the user will select choices from the spinner. |
也可以看看:
Spinner (Context context, AttributeSet attrs)
使用给定的上下文主题和提供的属性集构造一个新的微调控件。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the view. |
Spinner (Context context, AttributeSet attrs, int defStyleAttr)
使用给定的上下文主题,提供的属性集和默认样式属性构造一个新的微调控件。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the view. |
defStyleAttr |
int : An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |
Spinner (Context context, AttributeSet attrs, int defStyleAttr, int mode)
使用给定的上下文主题,提供的属性集和默认样式属性构造一个新的微调控件。 mode
可能是MODE_DIALOG
或MODE_DROPDOWN
之一,并确定用户将如何从微调器中选择选项。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the view. |
defStyleAttr |
int : An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |
mode |
int : Constant describing how the user will select choices from the spinner. |
也可以看看:
Spinner (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode)
使用给定的上下文主题,提供的属性集和默认样式构造一个新的微调控件。 mode
可能是MODE_DIALOG
或MODE_DROPDOWN
之一,并确定用户将如何从微调器中选择选项。
Parameters | |
---|---|
context |
Context : The Context the view is running in, through which it can access the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the view. |
defStyleAttr |
int : An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |
defStyleRes |
int : A resource identifier of a style resource that supplies default values for the view, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults. |
mode |
int : Constant describing how the user will select choices from the spinner. |
也可以看看:
Spinner (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode, Resources.Theme popupTheme)
使用给定的上下文,提供的属性集,默认样式,弹出模式( MODE_DIALOG
或 MODE_DROPDOWN
)以及弹出窗口应该被夸大的主题构造一个新的微调 MODE_DROPDOWN
。
Parameters | |
---|---|
context |
Context : The context against which the view is inflated, which provides access to the current theme, resources, etc. |
attrs |
AttributeSet : The attributes of the XML tag that is inflating the view. |
defStyleAttr |
int : An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |
defStyleRes |
int : A resource identifier of a style resource that supplies default values for the view, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults. |
mode |
int : Constant describing how the user will select choices from the spinner. |
popupTheme |
Resources.Theme : The theme against which the dialog or dropdown popup should be inflated. May be null to use the view theme. If set, this will override any value specified by Spinner_popupTheme . |
也可以看看:
CharSequence getAccessibilityClassName ()
返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName
。
Returns | |
---|---|
CharSequence |
int getBaseline ()
从小部件的顶部边界返回小部件文本基线的偏移量。 如果此小部件不支持基线对齐,则此方法返回-1。
Returns | |
---|---|
int |
the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported |
int getDropDownHorizontalOffset ()
为微调器的选择弹出窗口获取配置的像素水平偏移量。 仅在MODE_DROPDOWN
有效; 其他模式将返回0。
相关XML属性:
Returns | |
---|---|
int |
Horizontal offset in pixels |
int getDropDownVerticalOffset ()
为微调器的选择弹出窗口获取配置的像素垂直偏移量。 仅在MODE_DROPDOWN
有效; 其他模式将返回0。
相关XML属性:
Returns | |
---|---|
int |
Vertical offset in pixels |
int getDropDownWidth ()
以像素为单位获取微调器弹出窗口选项的配置宽度。 返回的值也可以是MATCH_PARENT
这意味着弹出窗口将与Spinner本身的宽度相匹配,或者WRAP_CONTENT
用于包装到包含的下拉列表项的测量大小。
相关XML属性:
Returns | |
---|---|
int |
Width in pixels, WRAP_CONTENT, or MATCH_PARENT |
int getGravity ()
介绍所选项目视图的位置。 默认值由当前主题决定。
Returns | |
---|---|
int |
A Gravity value |
Drawable getPopupBackground ()
获取微调器弹出窗口选项的背景可绘制。 仅在MODE_DROPDOWN
有效; 其他模式将返回null。
相关XML属性:
Returns | |
---|---|
Drawable |
background Background drawable |
Context getPopupContext ()
Returns | |
---|---|
Context |
the context used to inflate the Spinner's popup or dialog window |
CharSequence getPrompt ()
Returns | |
---|---|
CharSequence |
The prompt to display when the dialog is shown |
void onClick (DialogInterface dialog, int which)
当单击对话框中的按钮时,将调用此方法。
Parameters | |
---|---|
dialog |
DialogInterface : The dialog that received the click. |
which |
int : The button that was clicked (e.g. BUTTON1 ) or the position of the item clicked. |
void onRestoreInstanceState (Parcelable state)
吊钩允许视图重新应用以前由onSaveInstanceState()
生成的内部状态的表示。 这个函数永远不会被调用为null状态。
Parameters | |
---|---|
state |
Parcelable : The frozen state that had previously been returned by onSaveInstanceState() . |
Parcelable onSaveInstanceState ()
钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。
您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。
Returns | |
---|---|
Parcelable |
Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null. |
boolean onTouchEvent (MotionEvent event)
实现此方法来处理触摸屏幕动作事件。
如果使用此方法检测点击操作,建议通过执行并调用performClick()
来执行操作。 这将确保一致的系统行为,包括:
ACTION_CLICK
when accessibility features are enabled Parameters | |
---|---|
event |
MotionEvent : The motion event. |
Returns | |
---|---|
boolean |
True if the event was handled, false otherwise. |
boolean performClick ()
调用此视图的OnClickListener(如果已定义)。 执行与点击相关的所有常规操作:报告辅助功能事件,播放声音等。
Returns | |
---|---|
boolean |
True there was an assigned OnClickListener that was called, false otherwise is returned. |
void setAdapter (SpinnerAdapter adapter)
设置 SpinnerAdapter
用于提供支持此微调器的数据。
如果此Spinner具有通过popupTheme
属性以XML格式设置的弹出式主题,则适配器应使用相同的主题膨胀下拉视图。 实现此目的的最简单方法是使用getPopupContext()
获取用于getDropDownView(int, View, ViewGroup)
的布局充气器。
Spinner覆盖与此视图关联的适配器上的getViewTypeCount()
。 对从getAdapter()
返回的对象调用getItemViewType(int)
将始终返回0.调用getViewTypeCount()
将始终返回1.在API LOLLIPOP
及更高版本上,尝试设置具有多种视图类型的适配器将抛出IllegalArgumentException
。
Parameters | |
---|---|
adapter |
SpinnerAdapter : the adapter to set |
Throws | |
---|---|
IllegalArgumentException |
if the adapter has more than one view type |
也可以看看:
void setDropDownHorizontalOffset (int pixels)
为微调器的选择弹出窗口设置水平偏移像素。 仅在MODE_DROPDOWN
有效; 这种方法在其他模式下是无操作的。
相关XML属性:
Parameters | |
---|---|
pixels |
int : Horizontal offset in pixels |
void setDropDownVerticalOffset (int pixels)
为微调器的选择弹出窗口设置像素的垂直偏移量。 仅在MODE_DROPDOWN
有效; 这种方法在其他模式下是无操作的。
相关XML属性:
Parameters | |
---|---|
pixels |
int : Vertical offset in pixels |
void setDropDownWidth (int pixels)
以像素为单位设置选框的弹出窗口的宽度。 该值也可以设置为MATCH_PARENT
以与Spinner本身的宽度相匹配,或者WRAP_CONTENT
包装为包含的下拉列表项的测量大小。
仅在MODE_DROPDOWN
有效; 这种方法在其他模式下是无操作的。
相关XML属性:
Parameters | |
---|---|
pixels |
int : Width in pixels, WRAP_CONTENT, or MATCH_PARENT |
void setEnabled (boolean enabled)
设置此视图的启用状态。 启用状态的解释因子而异。
Parameters | |
---|---|
enabled |
boolean : True if this view is enabled, false otherwise. |
void setGravity (int gravity)
介绍所选项目视图的位置。 目前只使用水平分量。 默认值由当前主题决定。
相关XML属性:
Parameters | |
---|---|
gravity |
int : See Gravity |
void setOnItemClickListener (AdapterView.OnItemClickListener l)
微调不支持项目点击事件。 调用此方法将引发异常。
请使用 setOnItemSelectedListener(AdapterView.OnItemSelectedListener)
。
Parameters | |
---|---|
l |
AdapterView.OnItemClickListener : this listener will be ignored |
void setPopupBackgroundDrawable (Drawable background)
为微调器的选择弹出窗口设置背景可绘制。 仅在MODE_DROPDOWN
有效; 这种方法在其他模式下是无操作的。
相关XML属性:
Parameters | |
---|---|
background |
Drawable : Background drawable |
void setPopupBackgroundResource (int resId)
为微调器的选择弹出窗口设置背景可绘制。 仅在MODE_DROPDOWN
有效; 这种方法在其他模式下是无操作的。
相关XML属性:
Parameters | |
---|---|
resId |
int : Resource ID of a background drawable |
void setPrompt (CharSequence prompt)
设置显示对话框时显示的提示。
Parameters | |
---|---|
prompt |
CharSequence : the prompt to set |
void setPromptId (int promptId)
设置显示对话框时显示的提示。
Parameters | |
---|---|
promptId |
int : the resource ID of the prompt to display when the dialog is shown |
void onLayout (boolean changed, int l, int t, int r, int b)
当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。
Parameters | |
---|---|
changed |
boolean : This is a new size or position for this view |
l |
int : Left position, relative to parent |
t |
int : Top position, relative to parent |
r |
int : Right position, relative to parent |
b |
int : Bottom position, relative to parent |
void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)
调用, measure(int, int)
子类覆盖以提供其内容的准确和有效的度量。
合同:重写此方法时, 必须致电setMeasuredDimension(int, int)
来存储此视图的测量宽度和高度。 如果不这样做,将触发IllegalStateException
,引发measure(int, int)
。 调用超类' onMeasure(int, int)
是一种有效的用法。
Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)
以提供更好的内容度量。
如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()
和 getSuggestedMinimumWidth()
)。
Parameters | |
---|---|
widthMeasureSpec |
int : horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec . |
heightMeasureSpec |
int : vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec . |