【移动应用开发技术】控件(1)spinner_第1页
【移动应用开发技术】控件(1)spinner_第2页
【移动应用开发技术】控件(1)spinner_第3页
【移动应用开发技术】控件(1)spinner_第4页
【移动应用开发技术】控件(1)spinner_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】控件(1)spinner

Spinner位于android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类得一个子类。点击选框之后:属性:android:prompt:Spinner初始化时显示的数据方法:setPrompt(CharSequenceprompt):设置当Spinner对话框关闭时显示的提示performClick():如果它被定义就调用此视图的OnClickListenersetOnItemClickListener(AdapterView.OnItemClickListenerl):当项被点击时调用onDetachedFromWindow():当Spinner脱离窗口时被调用。示例:转自/chenjinyu_tang/article/details/6587953例子一:Spinner的基本实现方法步骤一:编写AndroidXML文件<LinearLayout……><TextViewandroid:id="@+id/spinner_label"……/><!--经过我们的测试android:drawSelectorOnTop="true|false"不起作用,因此此参数可以不设置--><Spinnerandroid:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout><LinearLayout……><TextViewandroid:id="@+id/spinner_label"……/><!--经过我们的测试android:drawSelectorOnTop="true|false"不起作用,因此此参数可以不设置--><Spinnerandroid:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>步骤二:源代码1)设置Spinner之中的元素内容,采用了ArrayAdapter来描述,并通过setApdater()来设置adapterprivateString[]items={"lorem","ipsum","dolor","sit","amet",….ArrayAdapter<String>aa=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);//第二个参数表示spinner没有展开前的UI类型spin.setAdapter(aa);//之前已经通过Spinnerspin=(Spinner)findViewById(R.id.spinner);来获取spin对象privateString[]items={"lorem","ipsum","dolor","sit","amet",….ArrayAdapter<String>aa=newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);//第二个参数表示spinner没有展开前的UI类型spin.setAdapter(aa);//之前已经通过Spinnerspin=(Spinner)findViewById(R.id.spinner);来获取spin对象2)设置spinner展开的方式,在上面,我们将通过设置ArrayAdapter的第二个参数,设置了spinner没有展开前的UI格式,simple_spinner_item是textview的label方式,而simple_spinner_dropdown_item这是点击圆圈选择方式。在这个例子中,我们将展开方式设置为点击圆圈选择,如图所示。关于格式,我们会在第二个例子中进行试验。aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);3)使用setOnItemSelectedListener()来设置Spinner的点击触发的callback函数,有onItemSelected和onNothingSelected两个接口需要具体给出。publicclassSpinnerTestextendsActivityimplementsOnItemSelectedListener{protectedvoidonCreate(BundlesavedInstanceState){……spin.setOnItemSelectedListener(this);……}@OverridepublicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstublabel.setText(items[arg2]);//label是我们设置的第一个TextViewwidget,arg2就是元素的pos需要}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){//TODOAuto-generatedmethodstublabel.setText("");}}publicclassSpinnerTestextendsActivityimplementsOnItemSelectedListener{protectedvoidonCreate(BundlesavedInstanceState){……spin.setOnItemSelectedListener(this);……}@OverridepublicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){//TODOAuto-generatedmethodstublabel.setText(items[arg2]);//label是我们设置的第一个TextViewwidget,arg2就是元素的pos需要}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){//TODOAuto-generatedmethodstublabel.setText("");}}例子二:Spinner的UI格式步骤一:编写AndroidXML文件在例子来自Android官方网站的tutorial的例子。我们下载SDK的文档中也带有,可以本地查看。这里我们希望item的元素内容设置都在XML中定义,方便修改以及多国语言版本的实现。在strings.xml中<resources><stringname="planet_prompt">太阳系行星:</string><string-arrayname="planets_arry"><item>Mercury</item><item>Venus</item><item>Earth</item><item>Mars</item><item>Jupiter</item><item>Saturn</item><item>Uranus</item><item>Neptune</item></string-array></resources>在strings.xml中<resources><stringname="planet_prompt">太阳系行星:</string><string-arrayname="planets_arry"><item>Mercury</item><item>Venus</item><item>Earth</item><item>Mars</item><item>Jupiter</item><item>Saturn</item><item>Uranus</item><item>Neptune</item></string-array></resources>在layout的xml中:<LinearLayout…><TextView…/><Spinnerandroid:id="@+id/spinner4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:prompt="@string/planet_prompt"/></LinearLayout><LinearLayout…><TextView…/><Spinnerandroid:id="@+id/spinner4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:prompt="@string/planet_prompt"/></LinearLayout>在Spinner中,我们设置了prompt,根据@string在strings.xml中查找,prompt的内容为“太阳系行星:”在我们点击展开Spinner中,我们可以看到在最上面增加了提示,如上图所示。步骤二:编写源代码1)设置spinner的adapter,并导入数据,以及设置UI格式。Spinnerspin=(Spinner)findViewById(R.id.spinner4);//createFromResouce将返回ArrayAdapter<CharSequence>,具有三个参数://第一个是conetxt,也就是application的环境,可以设置为this,也可以通过getContext()获取.//第二个参数是从datasource中的arrayID,也就是我们在strings中设置的ID号;//第三个参数是spinner未展开的UI格式ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.planets_arry,android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spin.setAdapter(adapter);Spinnerspin=(Spinner)findViewById(R.id.spinner4);//createFromResouce将返回ArrayAdapter<CharSequence>,具有三个参数://第一个是conetxt,也就是application的环境,可以设置为this,也可以通过getContext()获取.//第二个参数是从datasource中的arrayID,也就是我们在strings中设置的ID号;//第三个参数是spinner未展开的UI格式ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.planets_arry,android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spin.setAdapter(adapter);在ArrayApdater中我们设置了为展开的方式,android提供了两种格式,当然我们也可以通过AndroidXML文件进行设置,如同ListView一样,下图分别是设置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item的显示,一般而言,我们都会显示前者。如果我们不通过setDropDownViewResource进行设置,则展开的方式缺省同未展开的方式,否则必须进行设置,下图分别是设置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item。可以看出在下面左边的途中,展开和未展开的设置是不一样的。2)设置回调函数这里采用了一个类来描述回调处理publicclassMyOnItemSelectedListenerimplementsOnItemSelectedListener{@OverridepublicvoidonItemSelected(AdapterView<?>parent,Viewarg1,intpos,longarg3){//在这里我们复习一下Toast的用法Toast.makeText(parent.getContext(),"Theplanetis"+parent.getItemAtPosition(pos).toString(),Toast.LENGTH_LONG).show();}@OverridepublicvoidonNothingSelected(AdapterView<?>arg0){//nothingtodo}}publicclassMyOnItemSelectedListenerimplementsOnItemSelectedListener{@OverridepublicvoidonItemSelected(AdapterView<?>parent,Viewarg1,intpos,longarg3){//在这里我们复习一下Toast的用法To

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论