Android-Spinner的Listenner事件及菜单级联
来源:互联网 发布:软件视频会议系统 编辑:程序博客网 时间:2024/06/06 09:07
前几天刚刚分享了Spinner的使用方法,但并没有实现Spinner的选择事件,即没有为Spinner设置监听器。正好现在做点小东西需要用到Spinner,就认真的把Spinner好好学了一下,学会了对Spinner的监听事件出来,在此记录下来,与大家分享。
因为Android的控件使用的效果对每个人的需求来说都不一样,在此只是简单的实现最基本的事件处理,只为了今后需要的时候能回过头来重新学习而已。
首先现在布局文件里面添加一个TextView(显示提示信息)和一个Spinner。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:id="@+id/showinfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你喜欢的水果:" /> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/prompt" android:entries="@array/fruit"/> </LinearLayout>在java文件中取得组件,定义与写事件监听器并绑定,需要实现一个接口:OnItemSelectedListener()。
public class MainActivity extends Activity {private TextView showinfo = null;private Spinner spinner = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);showinfo = (TextView) findViewById(R.id.showinfo);spinner = (Spinner) findViewById(R.id.spinner);spinner.setOnItemSelectedListener(new spinnerSelectedListenner());//绑定事件监听}private class spinnerSelectedListenner implements OnItemSelectedListener{@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) { //望文生义,当列表项被选择时// TODO Auto-generated method stubString select = parent.getItemAtPosition(position).toString();//取得被选中的列表项的文字showinfo.setText("你喜欢的水果:"+select);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}}
第二部分是实现Spinner列表的级联,即Spinner之下再嵌套一个Spinner。
<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/prompt" android:entries="@array/fruit"/> <Spinner android:id="@+id/spinner2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/prompt2"/>因为第二级spinner对应一级spinner都含有不同的内容,所以不好在xml布局文件盒资源文件中定义添加。所以需要在java文件进行添加
public class MainActivity extends Activity {private TextView showinfo = null;private Spinner spinner = null;private Spinner spinner2 = null;private ArrayAdapter<CharSequence> dataAdapter = null;// 定义二级spinner内容private String[][] juiceData = new String[][] { { "苹果汁1", "苹果汁2", "苹果汁3" },{ "荔枝1", "荔枝2", "荔枝3", }, { "葡萄1", "葡萄2" }, { "西瓜汁" } };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);showinfo = (TextView) findViewById(R.id.showinfo);spinner = (Spinner) findViewById(R.id.spinner);spinner2 = (Spinner) findViewById(R.id.spinner2);spinner.setOnItemSelectedListener(new spinnerSelectedListenner());// 绑定事件监听}private class spinnerSelectedListenner implements OnItemSelectedListener {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) { // 望文生义,当列表项被选择时// TODO Auto-generated method stubdataAdapter = new ArrayAdapter<CharSequence>(MainActivity.this,android.R.layout.simple_spinner_item, juiceData[position]);// 所有列表项dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 设置显示风格spinner2.setAdapter(dataAdapter);// 添加二级菜单}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}}实现的结果就是当第一级spinner选择“荔枝”时,二级spinner会默认选择“荔枝”项里的第一项,即荔枝1。其他同理。在二级菜单中选择时,第一级的选择不会改变。就这样,简单的实现了Spinner的级联。虽然效果很简单,但是复杂的东西都是从简单的东西开始的,只要理解了,复杂的东西也就能做出来了。
关于Spinner的显示方法也在前面的前面文章详细说明了,关于如何在资源文件中配置Spinner的内容就不赘述了。
好了,去看《爸爸去哪儿》啦。
0 0
- Android-Spinner的Listenner事件及菜单级联
- Android中Spinner控件及级联Spinner的使用
- android 之 Spinner 下拉菜单实现级联
- android 之 Spinner 下拉菜单实现级联
- 下拉菜单(spinner)级联
- android下拉菜单spinner的使用方法
- android 之 Spinner 下拉菜单的使用
- android学习--Spinner下拉菜单的使用
- android下拉菜单spinner的使用方法
- Android学习 - 下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android 下拉菜单Spinner的具体用法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- android下拉菜单spinner的使用方法
- POJ 2456 Aggressive cows
- 关于定位、浮动、z-index 和 offsetParent 的一些概念
- C语言中重复定义的问题
- 一款集阅读、听书以及搜书于一体的多功能阅读器
- JSP表单提交给Servlet处理后,转到重定向的页面时,布局混乱
- Android-Spinner的Listenner事件及菜单级联
- GCDAsyncSocket接收数据连包无法解析的问题
- NSFileManager和NSFileHandle
- cocos2d-x 3.0 回调事件
- BeagleBone的GPIO控制
- 整除的尾数 【杭电-2099】 附题
- python中的pass,del,exec,eval语句
- http://www.rottentomatoes.com/user/1076238/blogs/?id=787888: CML8129 8 travail Boot4 de Carhartt.
- http://louboutinvery.seesaa.net/article/402238518.html: la pêche