Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的显示空间。
下面用一个简单的实例讲解 Spinner 的使用方法。在工程 WidgetDemo 的布局文件 main.xml 中添加一个 button,用以启动 SpinnerActivity。
在 main.xml 中添加代码如下:
<buttonandroID:ID="@+ID/button4"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:text="SpinnerDemo"/>
单击 button 并启动 SpinnerActivity 的代码如下
button spinnerbtn = (button) this.findVIEwByID(R.ID.button4);spinnerbtn.setonClickListener(new VIEw.OnClickListener() {@OverrIDepublic voID onClick(VIEw v) {Intent intent = new Intent(MainActivity.this, SpinnerActivity.class);startActivity(intent);}});
同时在 AndroidManifest.xml 文件中声明该 Activity:
<activity androID:name=".SpinnerActivity "></activity>
SpinnerActivity 的运行效果如图 1 所示。
图 1 Spinner 的应用界面
SpinnerActivity 使用的布局文件为 spiner.xml,其代码如下:
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:orIEntation="vertical"><TextVIEwandroID:ID="@+ID/textVIEw1"androID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:text="textvIEw"/><SpinnerandroID:ID="@+ID/spinner1"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"/></linearLayout>
SpinnerActivity.java 文件的代码如下:
package introduction.androID.WidgetDemo; import java.util.ArrayList;import java.util.List; import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.MotionEvent;import androID.vIEw.VIEw;import androID.Widget.AdapterVIEw;import androID.Widget.ArrayAdapter;import androID.Widget.Spinner;import androID.Widget.TextVIEw; public class SpinnerActivity extends Activity { private List<String> List = new ArrayList<String>();private TextVIEw textvIEw;private Spinner spinnertext;private ArrayAdapter<String> adapter; public voID onCreate(Bundle savedlnstanceState) {super.onCreate(savedlnstanceState);setContentVIEw(R.layout.spiner);//第一步:定义下拉列表内容List.add("A型");List.add("B型");List.add("O型");List.add("AB型");List.add("其他");textvIEw = (TextVIEw) findVIEwByld(R.ID.textVIEwl);spinnertext = (Spinner) findVIEwByld(R.ID.spinnerl);//第二步:为下拉列表定义一个适配器adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_spinner_item, List);//第三步:设置下拉列表下拉时的菜单样式adapter.setDropDownVIEwResource(androID.R.layout.simple_spinner_dropdown_item);//第四步:将适配器添加到下拉列表上spinnertext.setAdapter(adapter);//第五步:添加监听器,为下拉列表设置事件的响应spinnertext.setonltemSelectedListener(new Spinner.OnltemSelectedListener() {public voID onltemSelected(AdapterVIEw<?> argO, VIEw argl, int arg2, long arg3) {// Todo auto-generated method stub/* 将所选spinnertext的值带入myTextVIEw中*/textvIEw.setText("你的血型是:" + adapter.getItem(arg2));/* 将 spinnertext 显示^*/argO.setVisibility(VIEw.VISIBLE);} public voID onnothingSelected(AdapterVIEw<?> argO) {// Todo auto-generated method stubtextvIEw.setText("NONE");argO.setVisibility(VIEw.VISIBLE);}}); //将spinnertext添加到OntouchListener对内容选项触屏事件处理spinnertext.setontouchListener(new Spinner.OntouchListener() {@OverrIDepublic boolean ontouch(VIEw v, MotionEvent event) {// Todo auto-generated method stub// 将mySpinner隐藏v.setVisibility(VIEw.INVISIBLE);Log.i("spinner", "Spinner touch事件被触发!");return false;}}); //焦点改变事件处理spinnertext.setonFocuschangelistener(new Spinner.OnFocuschangelistener() {public voID onFocusChange(VIEw v, boolean hasFocus) {// Todo auto-generated method stubv.setVisibility(VIEw.VISIBLE);Log.i("spinner", "Spinner FocusChange事件被触发!");}}); }}
SpinnerActivity 通过 5 个步骤将 Spinner 初始化并进行事件处理,分别为:
定义下拉列表的列表项内容 List<String>。为下拉列表 Spinner 定义一个适配器 ArrayAdapter<String> ,并与列表项内容相关联。使用 ArrayAdapter.setDropDownVIEwResource() 设置 Spinner 下拉列表在打开时的下拉菜单样式。使用 Spinner. setAdapter() 将适配器数据与 Spinner 关联起来。为 Spinner 添加事件监听器,进行事件处理。
在本实例中,SpinnerActivity 在程序代码中动态建立了下拉列表每一项的内容。除此之外,还可以在 XML 文件中定义 Spinner 的下拉列表项,步骤如下。
1)在 res/values 文件夹下新建 citIEs.xml 文件夹:
<?xml version="1.0" enCoding="utf-8"?><resources><string-array name="city"><item>A型</item><item>B型</item><item>AB型</item><item>O型</item><item>其他</item></string-array></resources>
2)在 SpinnerActivity.java 中初始化 Spinner:
Spinner spinner=(Spinner)findVIEwByID(R.ID.spinner1);ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromresource(this, R.array.city,androID.R.layout.simple_spinner_item);adapter.setDropDownVIEwResource(androID.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(adapter); 总结
以上是内存溢出为你收集整理的Android Spinner:下拉列表控件全部内容,希望文章能够帮你解决Android Spinner:下拉列表控件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)