Most visited

Recently visited

Added in API level 1

Spinner

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指南。

Summary

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)

使用给定的上下文,提供的属性集,默认样式,弹出模式( MODE_DIALOGMODE_DROPDOWN )以及弹出窗口应该被夸大的主题来构造新的微调 MODE_DROPDOWN

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)

吊钩允许视图重新应用以前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

boolean onTouchEvent(MotionEvent event)

实现此方法来处理触摸屏幕动作事件。

boolean performClick()

调用此视图的OnClickListener(如果已定义)。

void setAdapter(SpinnerAdapter adapter)

设置用于提供支持此微调器的数据的 SpinnerAdapter

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

XML attributes

android:dropDownHorizontalOffset

下拉应该水平偏移的像素数量。

必须是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 dropDownHorizontalOffset

相关方法:

android:dropDownSelector

列表选择器用于spinnerMode =“下拉”显示。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

颜色值可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”的形式。

这对应于全局属性资源符号 dropDownSelector

android:dropDownVerticalOffset

下拉应该垂直偏移的像素数量。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 dropDownVerticalOffset

相关方法:

android:dropDownWidth

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

相关方法:

android:gravity

用于定位当前选定项目的重力设置。

必须是以下常量值中的一个或多个(用'|'分隔)。

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

相关方法:

android:popupBackground

后台可用于spinnerMode =“dropdown”下拉菜单。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

这对应于全局属性资源符号 popupBackground

相关方法:

android:prompt

显示微调器对话框时显示的提示。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 prompt

android:spinnerMode

旋转器选项的显示模式。

必须是下列常数值之一。

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

Constants

MODE_DIALOG

Added in API level 11
int MODE_DIALOG

使用对话窗口选择微调器选项。

常量值:0(0x00000000)

MODE_DROPDOWN

Added in API level 11
int MODE_DROPDOWN

使用固定到Spinner的下拉列表来选择微调器选项。

常数值:1(0x00000001)

Public constructors

Spinner

Added in API level 1
Spinner (Context context)

用给定的上下文主题构造一个新的微调器。

Parameters
context Context: The Context the view is running in, through which it can access the current theme, resources, etc.

Spinner

Added in API level 11
Spinner (Context context, 
                int mode)

使用给定的上下文主题和显示选项的提供模式构造一个新的微调控件。 mode可能是MODE_DIALOGMODE_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

Added in API level 1
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

Added in API level 1
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

Added in API level 11
Spinner (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int mode)

使用给定的上下文主题,提供的属性集和默认样式属性构造一个新的微调控件。 mode可能是MODE_DIALOGMODE_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

Added in API level 21
Spinner (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes, 
                int mode)

使用给定的上下文主题,提供的属性集和默认样式构造一个新的微调控件。 mode可能是MODE_DIALOGMODE_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

Added in API level 23
Spinner (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes, 
                int mode, 
                Resources.Theme popupTheme)

使用给定的上下文,提供的属性集,默认样式,弹出模式( MODE_DIALOGMODE_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.

也可以看看:

Public methods

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getBaseline

Added in API level 1
int getBaseline ()

从小部件的顶部边界返回小部件文本基线的偏移量。 如果此小部件不支持基线对齐,则此方法返回-1。

Returns
int the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported

getDropDownHorizontalOffset

Added in API level 16
int getDropDownHorizontalOffset ()

为微调器的选择弹出窗口获取配置的像素水平偏移量。 仅在MODE_DROPDOWN有效; 其他模式将返回0。

相关XML属性:

Returns
int Horizontal offset in pixels

getDropDownVerticalOffset

Added in API level 16
int getDropDownVerticalOffset ()

为微调器的选择弹出窗口获取配置的像素垂直偏移量。 仅在MODE_DROPDOWN有效; 其他模式将返回0。

相关XML属性:

Returns
int Vertical offset in pixels

getDropDownWidth

Added in API level 16
int getDropDownWidth ()

以像素为单位获取微调器弹出窗口选项的配置宽度。 返回的值也可以是MATCH_PARENT这意味着弹出窗口将与Spinner本身的宽度相匹配,或者WRAP_CONTENT用于包装到包含的下拉列表项的测量大小。

相关XML属性:

Returns
int Width in pixels, WRAP_CONTENT, or MATCH_PARENT

getGravity

Added in API level 16
int getGravity ()

介绍所选项目视图的位置。 默认值由当前主题决定。

Returns
int A Gravity value

getPopupBackground

Added in API level 16
Drawable getPopupBackground ()

获取微调器弹出窗口选项的背景可绘制。 仅在MODE_DROPDOWN有效; 其他模式将返回null。

相关XML属性:

Returns
Drawable background Background drawable

getPopupContext

Added in API level 23
Context getPopupContext ()

Returns
Context the context used to inflate the Spinner's popup or dialog window

getPrompt

Added in API level 1
CharSequence getPrompt ()

Returns
CharSequence The prompt to display when the dialog is shown

onClick

Added in API level 1
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.

onRestoreInstanceState

Added in API level 1
void onRestoreInstanceState (Parcelable state)

吊钩允许视图重新应用以前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Added in API level 1
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.

onTouchEvent

Added in API level 1
boolean onTouchEvent (MotionEvent event)

实现此方法来处理触摸屏幕动作事件。

如果使用此方法检测点击操作,建议通过执行并调用performClick()来执行操作。 这将确保一致的系统行为,包括:

  • obeying click sound preferences
  • dispatching OnClickListener calls
  • handling ACTION_CLICK when accessibility features are enabled

Parameters
event MotionEvent: The motion event.
Returns
boolean True if the event was handled, false otherwise.

performClick

Added in API level 1
boolean performClick ()

调用此视图的OnClickListener(如果已定义)。 执行与点击相关的所有常规操作:报告辅助功能事件,播放声音等。

Returns
boolean True there was an assigned OnClickListener that was called, false otherwise is returned.

setAdapter

Added in API level 1
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

也可以看看:

setDropDownHorizontalOffset

Added in API level 16
void setDropDownHorizontalOffset (int pixels)

为微调器的选择弹出窗口设置水平偏移像素。 仅在MODE_DROPDOWN有效; 这种方法在其他模式下是无操作的。

相关XML属性:

Parameters
pixels int: Horizontal offset in pixels

setDropDownVerticalOffset

Added in API level 16
void setDropDownVerticalOffset (int pixels)

为微调器的选择弹出窗口设置像素的垂直偏移量。 仅在MODE_DROPDOWN有效; 这种方法在其他模式下是无操作的。

相关XML属性:

Parameters
pixels int: Vertical offset in pixels

setDropDownWidth

Added in API level 16
void setDropDownWidth (int pixels)

以像素为单位设置选框的弹出窗口的宽度。 该值也可以设置为MATCH_PARENT以与Spinner本身的宽度相匹配,或者WRAP_CONTENT包装为包含的下拉列表项的测量大小。

仅在MODE_DROPDOWN有效; 这种方法在其他模式下是无操作的。

相关XML属性:

Parameters
pixels int: Width in pixels, WRAP_CONTENT, or MATCH_PARENT

setEnabled

Added in API level 1
void setEnabled (boolean enabled)

设置此视图的启用状态。 启用状态的解释因子而异。

Parameters
enabled boolean: True if this view is enabled, false otherwise.

setGravity

Added in API level 11
void setGravity (int gravity)

介绍所选项目视图的位置。 目前只使用水平分量。 默认值由当前主题决定。

相关XML属性:

Parameters
gravity int: See Gravity

setOnItemClickListener

Added in API level 1
void setOnItemClickListener (AdapterView.OnItemClickListener l)

微调不支持项目点击事件。 调用此方法将引发异常。

请使用 setOnItemSelectedListener(AdapterView.OnItemSelectedListener)

Parameters
l AdapterView.OnItemClickListener: this listener will be ignored

setPopupBackgroundDrawable

Added in API level 16
void setPopupBackgroundDrawable (Drawable background)

为微调器的选择弹出窗口设置背景可绘制。 仅在MODE_DROPDOWN有效; 这种方法在其他模式下是无操作的。

相关XML属性:

Parameters
background Drawable: Background drawable

setPopupBackgroundResource

Added in API level 16
void setPopupBackgroundResource (int resId)

为微调器的选择弹出窗口设置背景可绘制。 仅在MODE_DROPDOWN有效; 这种方法在其他模式下是无操作的。

相关XML属性:

Parameters
resId int: Resource ID of a background drawable

setPrompt

Added in API level 1
void setPrompt (CharSequence prompt)

设置显示对话框时显示的提示。

Parameters
prompt CharSequence: the prompt to set

setPromptId

Added in API level 1
void setPromptId (int promptId)

设置显示对话框时显示的提示。

Parameters
promptId int: the resource ID of the prompt to display when the dialog is shown

Protected methods

onDetachedFromWindow

Added in API level 1
void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onLayout

Added in API level 1
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

也可以看看:

onMeasure

Added in API level 1
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.

Hooray!