Android 中文API (38) —— Spinner
正文 一、结构 public final classSpinnerextendsAbsSpinner java.lang.Object android.view.View android.view.ViewGroup android.widget.AdapterView<T extends android.widget.Adapter> android.widget.AbsSpinner android.widget.Spinner 二、概述 下拉列表(Spinner)是一个每次只能选择所有项中一项的部件。它的项来自于与之相关联的适配器中。 三、XML属性 属性名称 描述 android:prompt 该提示在下拉列表对话框显示时显示。(译者注:对话框的标题: 四、公共方法 public int getBaseline() 返回这个控件文本基线的偏移量。如果这个控件不支持基线对齐,那么方法返回-1. 返回值 返回控件基线左边边界位置,不支持时返回-1 (译者注:这个类不知道干什么用,只找到下面的代码: public class AndroidBamboo extends Activity { public void onCreate(BundlesavedInstanceState) { super .onCreate(savedInstanceState); Spinnerspinner = new Spinner( this ); spinner.setPrompt( " 500 " ); String[]items = { " bam " , " boo " , " lab " , " code " , " programming " , " framework " , " android " }; ArrayAdapterarray_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 BooleanperformClick() 如果它被定义就调用此视图的OnClickListener(译者注:例如可以在加载时默认弹出下拉列表)。 返回值 为True一个指定的OnClickListener被调用,为false时不被调用。 public void setOnItemClickListener(AdapterView.OnItemClickListenerI) Spinner不支持item的点击事件,调用此方法将引发异常。 参数 l这个监听将被忽略 public voidsetPromptId(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{ /** Calledwhentheactivityisfirstcreated. */ Stringmes = " Wolf " ; private static final String[]m_arr = { " 第一组 " , " 第二组 " , " 第三组 " }; @Override public void onCreate(BundlesavedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.main); Spinners1 = (Spinner)findViewById(R.id.Spinner01); s1.setPrompt( " 请选择颜色 " ); // ArrayAdapteradapter=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,Viewarg1, 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(Stringstr){ Toast.makeText( this ,str,Toast.LENGTH_SHORT).show(); } } XML资源文件 <? xmlversion="1.0"encoding="utf-8" ?> < resources > < string name ="hello" > HelloWorld,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" > PleaseChooseaItem! </ string > </ resources > 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582627,如需转载请自行联系原作者