Most visited

Recently visited

Added in API level 11

NumberPicker

public class NumberPicker
extends LinearLayout

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.LinearLayout
         ↳ android.widget.NumberPicker


一个小部件,使用户能够从预定义的范围中选择一个数字。 这个小部件有两种风格,哪一种呈现给用户取决于当前的主题。

有关使用此小部件的示例,请参阅 TimePicker

Summary

Nested classes

interface NumberPicker.Formatter

用于将当前值格式化为用于演示的字符串的接口。

interface NumberPicker.OnScrollListener

用于侦听拾取器滚动状态的界面。

interface NumberPicker.OnValueChangeListener

接口监听当前值的变化。

Inherited XML attributes

From class android.widget.LinearLayout
From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.widget.LinearLayout
From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

NumberPicker(Context context)

创建一个新的号码选择器。

NumberPicker(Context context, AttributeSet attrs)

创建一个新的号码选择器。

NumberPicker(Context context, AttributeSet attrs, int defStyleAttr)

创建一个新的号码选择器

NumberPicker(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

创建一个新的号码选择器

Public methods

void computeScroll()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。

boolean dispatchKeyEvent(KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。

boolean dispatchTouchEvent(MotionEvent event)

将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。

boolean dispatchTrackballEvent(MotionEvent event)

将轨迹球运动事件传递给焦点视图。

AccessibilityNodeProvider getAccessibilityNodeProvider()

获取用于管理以此视图为根的虚拟视图层次结构的提供者,并将其报告给探索窗口内容的 AccessibilityService

String[] getDisplayedValues()

获取要显示的值而不是字符串值。

int getMaxValue()

返回选取器的最大值。

int getMinValue()

返回选择器的最小值。

int getSolidColor()

如果已知视图始终在纯色背景上绘制,并需要绘制渐变边缘,则覆盖此视图。

int getValue()

返回选择器的值。

boolean getWrapSelectorWheel()

获取当达到最小/最大值时选择器轮是否卷绕。

void jumpDrawablesToCurrentState()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

boolean onInterceptTouchEvent(MotionEvent event)

实施此方法来拦截所有触摸屏幕动作事件。

boolean onTouchEvent(MotionEvent event)

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

boolean performClick()

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

boolean performLongClick()

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

void scrollBy(int x, int y)

移动视图的滚动位置。

void setDisplayedValues(String[] displayedValues)

设置要显示的值。

void setEnabled(boolean enabled)

设置此视图的启用状态。

void setFormatter(NumberPicker.Formatter formatter)

设置格式化程序用于格式化当前值。

void setMaxValue(int maxValue)

设置选取器的最大值。

void setMinValue(int minValue)

设置选取器的最小值。

void setOnLongPressUpdateInterval(long intervalMillis)

分别长按向上和向下按钮时,设置数字递增和递减的速度。

void setOnScrollListener(NumberPicker.OnScrollListener onScrollListener)

设置侦听器以通知滚动状态更改。

void setOnValueChangedListener(NumberPicker.OnValueChangeListener onValueChangedListener)

将侦听器设置为通知当前值的更改。

void setValue(int value)

设置数字选择器的当前值。

void setWrapSelectorWheel(boolean wrapSelectorWheel)

设置在 getMinValue() /滚动过程中显示的选择器轮是否应包含 getMinValue()getMaxValue()值。

Protected methods

int computeVerticalScrollExtent()

计算垂直滚动条拇指在垂直范围内的垂直范围。

int computeVerticalScrollOffset()

计算垂直滚动条拇指在水平范围内的垂直偏移量。

int computeVerticalScrollRange()

计算垂直滚动条代表的垂直范围。

boolean dispatchHoverEvent(MotionEvent event)

发送悬停事件。

void drawableStateChanged()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

float getBottomFadingEdgeStrength()

返回底部渐变边的强度或强度。

float getTopFadingEdgeStrength()

返回顶部褪色边缘的强度或强度。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

void onLayout(boolean changed, int left, int top, int right, int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

Inherited methods

From class android.widget.LinearLayout
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

Public constructors

NumberPicker

Added in API level 11
NumberPicker (Context context)

创建一个新的号码选择器。

Parameters
context Context: The application environment.

NumberPicker

Added in API level 11
NumberPicker (Context context, 
                AttributeSet attrs)

创建一个新的号码选择器。

Parameters
context Context: The application environment.
attrs AttributeSet: A collection of attributes.

NumberPicker

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

创建一个新的号码选择器

Parameters
context Context: the application environment.
attrs AttributeSet: a collection of attributes.
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.

NumberPicker

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

创建一个新的号码选择器

Parameters
context Context: the application environment.
attrs AttributeSet: a collection of attributes.
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.

Public methods

computeScroll

Added in API level 11
void computeScroll ()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。 这通常会在孩子使用Scroller对象动画滚动时Scroller

dispatchKeyEvent

Added in API level 11
boolean dispatchKeyEvent (KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。

Parameters
event KeyEvent: The key event to be dispatched.
Returns
boolean True if the event was handled, false otherwise.

dispatchTouchEvent

Added in API level 11
boolean dispatchTouchEvent (MotionEvent event)

将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

dispatchTrackballEvent

Added in API level 11
boolean dispatchTrackballEvent (MotionEvent event)

将轨迹球运动事件传递给焦点视图。

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

getAccessibilityNodeProvider

Added in API level 16
AccessibilityNodeProvider getAccessibilityNodeProvider ()

获取用于管理以此视图为根的虚拟视图层次结构的提供者,并报告给探索窗口内容的 AccessibilityService

如果此方法返回一个实例,则此实例负责管理AccessibilityNodeInfo描述以此View为根的虚拟子树,包括代表View本身的虚拟子树。 同样,返回的实例负责在任何虚拟视图或根视图本身上执行辅助功能操作。

如果 View.AccessibilityDelegate已经通过调用 setAccessibilityDelegate(AccessibilityDelegate)被指定,它的 getAccessibilityNodeProvider(View)负责处理这个呼叫。

Returns
AccessibilityNodeProvider The provider.

getDisplayedValues

Added in API level 11
String[] getDisplayedValues ()

获取要显示的值而不是字符串值。

Returns
String[] The displayed values.

getMaxValue

Added in API level 11
int getMaxValue ()

返回选取器的最大值。

Returns
int The max value.

getMinValue

Added in API level 11
int getMinValue ()

返回选择器的最小值。

Returns
int The min value

getSolidColor

Added in API level 11
int getSolidColor ()

如果已知视图始终在纯色背景上绘制,并需要绘制渐变边缘,则覆盖此视图。 返回非零颜色使视图系统能够优化衰落边缘的绘制。 如果您确实返回非零颜色,则应将alpha设置为0xFF。

Returns
int The known solid color background for this view, or 0 if the color may vary

getValue

Added in API level 11
int getValue ()

返回选择器的值。

Returns
int The value.

getWrapSelectorWheel

Added in API level 11
boolean getWrapSelectorWheel ()

获取当达到最小/最大值时选择器轮是否卷绕。

Returns
boolean True if the selector wheel wraps.

也可以看看:

jumpDrawablesToCurrentState

Added in API level 11
void jumpDrawablesToCurrentState ()

在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState()

如果有一个StateListAnimator附加到这个视图,也调用 jumpToCurrentState()

onInterceptTouchEvent

Added in API level 11
boolean onInterceptTouchEvent (MotionEvent event)

实施此方法来拦截所有触摸屏幕动作事件。 这允许您在事件发送给您的孩子时观看事件,并在任何时候掌握当前手势的所有权。

使用这个函数需要注意,因为它与View.onTouchEvent(MotionEvent)有一个相当复杂的交互,并且使用它需要以正确的方式执行该方法。 活动将按以下顺序收到:

  1. You will receive the down event here.
  2. The down event will be handled either by a child of this view group, or given to your own onTouchEvent() method to handle; this means you should implement onTouchEvent() to return true, so you will continue to see the rest of the gesture (instead of looking for a parent view to handle it). Also, by returning true from onTouchEvent(), you will not receive any following events in onInterceptTouchEvent() and all touch processing must happen in onTouchEvent() like normal.
  3. For as long as you return false from this function, each following event (up to and including the final up) will be delivered first here and then to the target's onTouchEvent().
  4. If you return true from here, you will not receive any following events: the target view will receive the same event but with the action ACTION_CANCEL, and all further events will be delivered to your onTouchEvent() method and no longer appear here.

Parameters
event MotionEvent: The motion event being dispatched down the hierarchy.
Returns
boolean Return true to steal motion events from the children and have them dispatched to this ViewGroup through onTouchEvent(). The current target will receive an ACTION_CANCEL event, and no further messages will be delivered here.

onTouchEvent

Added in API level 11
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 11
boolean performClick ()

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

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

performLongClick

Added in API level 11
boolean performLongClick ()

调用此视图的OnLongClickListener(如果已定义)。 如果OnLongClickListener没有使用该事件,则调用上下文菜单。

Returns
boolean true if one of the above receivers consumed the event, false otherwise

scrollBy

Added in API level 11
void scrollBy (int x, 
                int y)

移动视图的滚动位置。 这将导致对onScrollChanged(int, int, int, int)的呼叫,视图将失效。

Parameters
x int: the amount of pixels to scroll by horizontally
y int: the amount of pixels to scroll by vertically

setDisplayedValues

Added in API level 11
void setDisplayedValues (String[] displayedValues)

设置要显示的值。

Parameters
displayedValues String: The displayed values. Note: The length of the displayed values array must be equal to the range of selectable numbers which is equal to getMaxValue() - getMinValue() + 1.

setEnabled

Added in API level 11
void setEnabled (boolean enabled)

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

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

setFormatter

Added in API level 11
void setFormatter (NumberPicker.Formatter formatter)

设置格式化程序用于格式化当前值。

注意:如果您为值提供了其他值,则此格式化程序从不会被调用。

Parameters
formatter NumberPicker.Formatter: The formatter object. If formatter is null, valueOf(int) will be used.

也可以看看:

setMaxValue

Added in API level 11
void setMaxValue (int maxValue)

设置选取器的最大值。

Parameters
maxValue int: The max value inclusive. Note: The length of the displayed values array set via setDisplayedValues(String[]) must be equal to the range of selectable numbers which is equal to getMaxValue() - getMinValue() + 1.

setMinValue

Added in API level 11
void setMinValue (int minValue)

设置选取器的最小值。

Parameters
minValue int: The min value inclusive. Note: The length of the displayed values array set via setDisplayedValues(String[]) must be equal to the range of selectable numbers which is equal to getMaxValue() - getMinValue() + 1.

setOnLongPressUpdateInterval

Added in API level 11
void setOnLongPressUpdateInterval (long intervalMillis)

分别长按向上和向下按钮时,设置数字递增和递减的速度。

默认值是300毫秒。

Parameters
intervalMillis long: The speed (in milliseconds) at which the numbers will be incremented and decremented.

setOnScrollListener

Added in API level 11
void setOnScrollListener (NumberPicker.OnScrollListener onScrollListener)

设置侦听器以通知滚动状态更改。

Parameters
onScrollListener NumberPicker.OnScrollListener: The listener.

setOnValueChangedListener

Added in API level 11
void setOnValueChangedListener (NumberPicker.OnValueChangeListener onValueChangedListener)

将侦听器设置为通知当前值的更改。

Parameters
onValueChangedListener NumberPicker.OnValueChangeListener: The listener.

setValue

Added in API level 11
void setValue (int value)

设置数字选择器的当前值。

如果参数小于 getMinValue()getWrapSelectorWheel()false则当前值设置为 getMinValue()值。

如果参数小于 getMinValue()getWrapSelectorWheel()true则当前值设置为 getMaxValue()值。

如果参数小于 getMaxValue()getWrapSelectorWheel()false则当前值设置为 getMaxValue()值。

如果参数小于 getMaxValue()getWrapSelectorWheel()true则当前值设置为 getMinValue()值。

Parameters
value int: The current value.

也可以看看:

setWrapSelectorWheel

Added in API level 11
void setWrapSelectorWheel (boolean wrapSelectorWheel)

设置在 getMinValue() /滚动过程中显示的选择轮是否应包裹 getMinValue()getMaxValue()值。

默认情况下,如果范围(最大 - 最小)大于选择轮上显示的项目数,则启用选择轮回卷。

注意:如果项目的数量(即范围( getMaxValue() - getMinValue() ))小于选择轮上显示的项目数量,选择轮将不包装。 因此,在这种情况下调用这种方法是NOP。

Parameters
wrapSelectorWheel boolean: Whether to wrap.

Protected methods

computeVerticalScrollExtent

Added in API level 11
int computeVerticalScrollExtent ()

计算垂直滚动条拇指在垂直范围内的垂直范围。 该值用于计算滚动条轨道内的拇指长度。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollOffset()使用的单位相同。

默认范围是此视图的绘图高度。

Returns
int the vertical extent of the scrollbar's thumb

computeVerticalScrollOffset

Added in API level 11
int computeVerticalScrollOffset ()

计算垂直滚动条拇指在水平范围内的垂直偏移量。 该值用于计算滚动条轨道内的拇指位置。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollExtent()使用的单位相同。

默认偏移量是该视图的滚动偏移量。

Returns
int the vertical offset of the scrollbar's thumb

computeVerticalScrollRange

Added in API level 11
int computeVerticalScrollRange ()

计算垂直滚动条代表的垂直范围。

范围以任意单位表示,必须与 computeVerticalScrollExtent()computeVerticalScrollOffset()使用的单位相同。

Returns
int the total vertical range represented by the vertical scrollbar

默认范围是此视图的绘图高度。

dispatchHoverEvent

Added in API level 14
boolean dispatchHoverEvent (MotionEvent event)

发送悬停事件。

不要直接调用这个方法。 改为拨打dispatchGenericMotionEvent(MotionEvent)

Parameters
event MotionEvent: The motion event to be dispatched.
Returns
boolean True if the event was handled by the view, false otherwise.

drawableStateChanged

Added in API level 11
void drawableStateChanged ()

只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。

如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。

重写此功能时,一定要调用超类。

getBottomFadingEdgeStrength

Added in API level 11
float getBottomFadingEdgeStrength ()

返回底部渐变边的强度或强度。 强度是介于0.0(无褪色)和1.0(全褪色)之间的值。 默认实现返回0.0或1.0,但两者之间没有值。 滚动发生时,子类应该重写此方法以提供更平滑的淡入淡出转换。

Returns
float the intensity of the bottom fade as a float between 0.0f and 1.0f

getTopFadingEdgeStrength

Added in API level 11
float getTopFadingEdgeStrength ()

返回顶部褪色边缘的强度或强度。 强度是介于0.0(无褪色)和1.0(全褪色)之间的值。 默认实现返回0.0或1.0,但两者之间没有值。 滚动发生时,子类应该重写此方法以提供更平滑的淡入淡出转换。

Returns
float the intensity of the top fade as a float between 0.0f and 1.0f

onDetachedFromWindow

Added in API level 11
void onDetachedFromWindow ()

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

onDraw

Added in API level 11
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onLayout

Added in API level 11
void onLayout (boolean changed, 
                int left, 
                int top, 
                int right, 
                int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。

Parameters
changed boolean: This is a new size or position for this view
left int: Left position, relative to parent
top int: Top position, relative to parent
right int: Right position, relative to parent
bottom int: Bottom position, relative to parent

onMeasure

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