Android API 25 (Android 7.1.1)
Spinner
public class Spinner
extends AbsSpinner implements DialogInterface.OnClickListener
Added in API level 1
java.lang.Object
↳android.view.View
↳android.view.ViewGroup
↳android.widget.AdapterView<android.widget.SpinnerAdapter>
↳android.widget.AbsSpinner
↳android.widget.Spinner
已知直接子类:
AppCompatSpinner
【概述】
显示子项让用户选择的视图。该组件中的条目通过一个Adapter进行关联。
参见Spinners指南。
【XML属性】
android:dropDownHorizontalOffset
关联方法:setDropDownHorizontalOffset(int pixels)
API 5
属性说明:为下拉列表项设置水平偏移像素值。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用
于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是dropDownHorizontalOffset。
仅在MODE_DROPDOWN模式中有效。
android:dropDownSelector
API 1
属性说明:在spinner的显示模式为dropdown时,设置的选项列表。
可以引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是颜色值(color),格式”#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。
对应的全局属性资源符号是dropDownSelector。
android:dropDownVerticalOffset
关联方法:setDropDownVerticalOffset(int pixels)
API 5
属性说明:为下拉列表项设置竖直偏移像素值。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用
于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是dropDownHorizontalOffset。
仅在MODE_DROPDOWN模式中有效。
android:dropDownWidth
关联方法:setDropDownWidth(int pixels)
API 3
属性说明:在spinner的显示模式为dropdown时,设置下拉列表项宽度。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是以下常数值之一:
fill_parent -1 视图应该和它的父对象一样大(减去填充)。
此常数从API级别8开始弃用,并由match_parent替换。
match_parent -1 视图应该和它的父对象一样大(减去填充)。在API级别8中引入。
wrap_content -2 视图应该足够大以包围其内容(加上填充)。
对应的全局属性资源符号是layout_height。
android:gravity
关联方法:setGravity(int gravity)
API 1
属性说明:为当前被选中子项设置重心。
必须是以下一个或多个(用”|”分隔)常量:
top 将对象推送到其容器的顶部,而不更改其大小。
bottom 将对象推送到其容器的底部,而不更改其大小。
left 将对象推送到其容器的左侧,而不更改其大小。
right 将对象推送到其容器的右侧,而不更改其大小。
center 将对象放置在其容器的垂直和水平轴的中心,而不改变其大小。
center_vertical 将对象放置在其容器的垂直中心,而不改变其大小。
centet_horizontal 将对象放置在其容器的水平中心,而不改变其大小。
fill 如果需要,增大对象的水平和垂直尺寸,以便它完全填充其容器。
fill_vertical 如果需要,增大对象的垂直尺寸,以便它完全填充其容器。
fill_horizontal 如果需要,增大对象的水平尺寸,以便它完全填充其容器。
clip_vertical 附加的可选设置,它可以设置容器内子对象的上下边缘裁剪它的容器边框。裁剪会基于垂直对齐的方式:顶部对齐的会裁剪底部边缘,底部对齐的会裁剪顶部边缘,不会上下边缘都裁剪。
clip_horizontal 附加的可选设置,它可以设置容器内子对象的左右边缘裁剪它的容器边框。裁剪会基于水平对齐的方式:左对齐的会裁剪右边缘,右对齐的会裁剪左边缘,不会左右边缘都裁剪。
start 将对象推送到其容器的起始处,而不更改其大小。
end 将对象推送到其容器的结尾处,而不更改其大小。
对应的全局属性资源符号是gravity。
android:popupBackground
关联方法:setPopupBackgroundResource(int resId)
API 1
属性说明:在spinner的显示模式为dropdown时,设置下拉列表项的背景图像。
可以引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是颜色值(color),格式”#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。
对应的全局属性资源符号是popupBackground。
仅在MODE_DROPDOWN模式中有效。
android:prompt
API 1
属性说明:在spinner的显示模式为dialog时,在对话框出现时显示的提示语。必须为引用类型。
可以引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是prompt。
android:spinnerMode
API 11
属性说明:设置spinner选项的显示模式。
必须是以下常量值之一:
dialog 对话窗
dropdown 内嵌下拉列表
对应的全局属性资源符号是spinerMode。
【继承自widget.AbsSpinner的XML属性】
android:entries
API 1
属性说明:引用将填充spinner下拉框的数组资源。对于静态内容,这比以编程方式填充Spinner更简单。
必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是entries。
例:Layout下XML代码:
<Spinner
android:id="@+id/degree"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/degrees" />
引用资源在values目录下:
<string-array name="degrees">
<item>初中及以下</item>
<item>高中</item>
<item>大学</item>
<item>研究生及以上</item>
</string-array>
在Activity程序需中使用代码添加数据:
public class SpinnerDemoActivity extends Activity {
private Spinner city = null; //要读取的下拉列表
private ArrayAdapter<CharSequence> cities = null; //要使用的Adapter
//CharSequence是String和StringBuffer的父类,不直接使用String,是出于对StringBuffer的兼容
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
city = (Spinner) super.findViewById(R.id.city); //获取下拉列表
city.setPrompt("您所在的城市是:"); //设置Prompt
cities = ArrayAdapter.createFromResource(this, R.array.cities,android.R.layout.simple_spinner_item);
//实例化ArrayAdapter
city.setAdapter(cities);//设置显示信息
}
}
【继承自view.ViewGroup的XML属性】
...
【继承自view.View的XML属性】
..
【公共构造函数】
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)
【公共方法】
getAccessbilityClassName
CharSequence getAccessibilityClassName ()
API 23
用于辅助功能返回此对象的类名。当其子类被用于辅助功能时,并在view中作为一个完整的新类以实现一些目的时,子类只能重写(override),该子类与所继承的类不再有关联。
被用于填写AccessibilityNodeInfo.setClassName。
getBaseline
int getBaseline ()
API 1
从窗口小部件的顶边界返回窗口小部件的文本基线的偏移量。如果此窗口小部件不支持基线对齐,则此方法返回-1。
getDropDownHorizontalOffset
int getDropDownHorizontalOffset ()
API 16
获取选择的Spinner的弹出窗口的配置水平偏移量,单位为像素。
仅在MODE_DROPDOWN中有效;其他模式将返回0。
getDropDownVerticalOffset
int getDropDownVerticalOffset ()
API 16
获取选择的Spinner的弹出窗口的配置垂直偏移量,单位为像素。
仅在MODE_DROPDOWN中有效;其他模式将返回0。
getDropDownWidth
int getDropDownWidth ()
API 16
获取选择的Spinner的弹出窗口的配置宽度,单位为像素。
返回的值也可以是MATCH_PARENT,这意味着弹出窗口将匹配Spinner本身的宽度,或者WRAP_CONTENT将包装到包含的下拉列表项的测量大小。
getGravity
int getGravity ()
API 16
说明所选择的项目视图如何定位。默认值由当前主题确定。
getPopupBackground
Drawable getPopupBackground ()
API 16
获取选择的Spinner的弹出窗口的背景绘制。
仅在MODE_DROPDOWN中有效;其他模式将返回null。
getPopupContext
Context getPopupContext ()
API 23
获取选择的Spinner的弹出窗口或对话窗口中用来填充的上下文。
getPrompt
CharSequence getPrompt ()
API 1
获取选择的Spinner的对话窗口的提示。
onClick
void onClick (DialogInterface dialog, int which)
API 1
当单击对话框中的按钮时,将调用此方法。
onRestoreInstanceState
void onRestoreInstanceState (Parcelable state)
API 1
挂起以允许视图重新应用其内部状态的一个映像,其内部状态已由onSaveInstanceState()方法产生。该方法绝对不会在null状态下被调用。
onSaveInstanceState
Parcelable onSaveInstanceState ()
API 1
挂起以允许视图产生其内部状态的一个映像,该映像稍后可用于创建具有相同状态的新实例。此状态应仅包含不持久的信息或以后不能重建的信息。例如,你永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时,将再次计算。
您可能在此处存储的某些事例:文本视图中当前光标位置(但通常不是文本本身,因为它们存储在内容提供者或其他持久存储中),列表视图中当前选定的项。
onTouchEvent
boolean onTouchEvent (MotionEvent event)
API 1
实现此方法以处理触摸屏手势事件。
如果此方法用于检测单击操作,建议通过实现和调用performClick()执行操作。这将确保一致的系统行为,包括:
·服从点击声音首选项
·调度OnClickListener调用
·在启用辅助功能时处理ACTION_CLICK
performClick
boolean performClick ()
API 1
调用此视图的OnClickListener(如果已定义)。 执行与点击相关联的所有常规操作:报告辅助功能事件,播放声音等。
setAdapter
void setAdapter (SpinnerAdapter adapter)
API 1
设置用于提供支持此Spinner数据的SpinnerAdapter。
如果此Spinner具有通过popupTheme属性在XML中设置的popup主题,则适配器应使用相同的主题来填充下拉视图。
实现这个最简单的方法是使用getPopupContext()获取一个布局天重启用于getDropDownView(int, View, ViewGroup)。
Spinner重写与此视图关联的适配器上的getViewTypeCount()。 在getAdapter()返回的对象上调用getItemViewType(int)将总是返回0。调用getViewTypeCount()将总是返回1。在API LOLLIPOP及以上版本上,尝试设置一个具有多个视图类型的适配器将抛出IllegalArgumentException异常。
setDropDownHorizontalOffset
void setDropDownHorizontalOffset (int pixels)
API 16
设置spinner的弹出式窗口的水平偏移量(以像素为单位)。
仅在MODE_DROPDOWN模式中有效;在其他模式下无操作的。
setDropDownVerticalOffset
void setDropDownVerticalOffset (int pixels)
API 16
设置spinner的弹出式窗口的垂直偏移量(以像素为单位)。
仅在MODE_DROPDOWN模式中有效;在其他模式下无操作的。
setDropDownWidth
void setDropDownWidth (int pixels)
API 16
设置spinner的弹出式窗口的宽度(以像素为单位)。
也可以是MATCH_PARENT,这意味着弹出窗口将匹配Spinner本身的宽度,或者WRAP_CONTENT将包装到包含的下拉列表项的测量大小。
仅在MODE_DROPDOWN模式中有效;在其他模式下无操作的。
setEnabled
void setEnabled (boolean enabled)
API 1
设置此视图的启用状态。启用状态的解释因子类而异。
setGravity
void setGravity (int gravity)
API 11
说明所选择的项目视图如何定位。目前,只有水平分量被使用。默认值由当前主题确定。
setOnItemClickListener
void setOnItemClickListener (AdapterView.OnItemClickListener l)
API 1
Spinner不支持项目点击事件。 调用此方法将引发异常。
而应使用setOnItemSelectedListener(AdapterView.OnItemSelectedListener)。
setPopupBackgroundDrawable
void setPopupBackgroundDrawable (Drawable background)
API 16
设置选择的Spinner的弹出窗口的背景绘制。
仅在MODE_DROPDOWN模式中有效;在其他模式下无操作的。
setPopupBackgroundResource
void setPopupBackgroundResource (int resId)
API 16
设置选择的Spinner的弹出窗口的背景绘制。
仅在MODE_DROPDOWN模式中有效;在其他模式下无操作的。
setPrompt
void setPrompt (CharSequence prompt)
API 1
设置显示对话框时显示的提示。
setPromptId
void setPromptId (int promptId)
API 1
设置显示对话框时显示的提示。