(Spinner) android中Spinner的使用
来源:互联网 发布:北京精雕编程视频教程 编辑:程序博客网 时间:2024/06/10 18:11
(Spinner) android中Spinner的使用
Spinner这个组件配置之后需要进行内容的设置,而内容可以使用配置文件完成,也可以通过ArrayAdapter类进行封装操作完成
单机选项public void ( l)
选项改变 public void ( l)
长按事件 public void ( l)
主要使用到事件就在于事件的变更
下面是城市的选择列表
1.在values文件夹中创建一个city_data.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="city_labels"> <item>中国-上海</item> <item>中国-北京</item> <item>中国-广州</item> <item>中国-海南</item> </string-array> </resources>
2.在String.xml文件中定义String属性
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, MainActivity!</string> <string name="app_name">Spinner3</string> <string name="city_app">下拉列表框选项</string> <string name="city_prompt">选择你喜欢的城市</string></resources>
3.在layout的Main.xml配置文件中 添加相应的控件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- 接收下拉列表的选项 --> <TextView android:id="@+id/info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/city_prompt" /> <!-- android:text="@string/city_prompt" 提示信息 --> <!-- android:entries="@array/city_labels"下拉列表的内容 --> <Spinner android:id="@+id/city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/city_labels" android:text="@string/city_prompt" /></LinearLayout>
4.在Activity中完成相应事件处理的操作
package com.qn.spinner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.Button;import android.widget.Spinner;import android.widget.TextView;public class MainActivity extends Activity { /** Called when the activity is first created. */ private Spinner city;// 下拉列表框的内容 private TextView info;// 事件发生后取得下拉列表框的内容 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); city = (Spinner) findViewById(R.id.city);// 取得下拉列表框 info = (TextView) findViewById(R.id.info);// 取得文本显示控件 city.setOnItemSelectedListener(new OnItemSelectedListenerImpl()); } private class OnItemSelectedListenerImpl implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {// 选项改变的时候触发 String value = (String) parent.getItemAtPosition(position);// 得到选中的选项 info.setText("你喜欢的城市" + value);// 选项的内容在TextView中显示 } public void onNothingSelected(AdapterView<?> arg0) {// 没有选项的时候触发 // 一般不关心 } }}
结果
下面是级联菜单
1.在values文件夹中创建一个city_data.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="city_labels"> <item>中国-上海</item> <item>中国-北京</item> <item>中国-广州</item> <item>中国-海南</item> </string-array> </resources>
2.在String.xml文件中定义String属性
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, MainActivity!</string> <string name="app_name">Spinner3</string> <string name="city_app">下拉列表框选项</string> <string name="city_prompt">选择你喜欢的城市</string> <string name="area_prompt">选择你喜欢的城区</string></resources>
3.在layout的Main.xml配置文件中 添加相应的控件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <!-- android:text="@string/city_prompt" 提示信息 --> <!-- android:entries="@array/city_labels"下拉列表的内容 --> <!-- 一级栏目 --> <Spinner android:id="@+id/city" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/city_labels" android:text="@string/city_prompt" /> <!-- 二级栏目 --> <Spinner android:id="@+id/area" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/area_prompt" /></LinearLayout>
4.在Activity中完成相应事件处理的操作
二级栏目中定义了数组进行填入数据,
用数组填入数据必须,用ArrayAdapter
所以要准备ArrayAdapter
private ArrayAdapter<CharSequence> adapterArea;基本都用CharSequence 应为我们还是要标准化 以借口作为我们的标准,能使接口就不适应类(String)
adapterArea=new ArrayAdapter<CharSequence>()
使用这个构造方法,因为可以直接接受数组
publicArrayAdapter( context, int resource, int textViewResourceId, T[] objects) package com.qn.spinner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.Spinner;import android.widget.TextView;public class MainActivity extends Activity { /** Called when the activity is first created. */ private Spinner city;// 一级菜单 private Spinner area;//二级菜单 private String[][] areaData=new String [][]{ {"东城","西城","朝阳","大兴"}//针对一级子信息 ,{"黄普","东方名族","杨浦","大兴"}//针对二级子信息 ,{"广东"}};//针对三级子信息 private ArrayAdapter<CharSequence> adapterArea; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); city = (Spinner) findViewById(R.id.city);// 取得下拉列表框 //由于一个城市有多个市区,为了简单起见下面我们定义一个数组,通过数组保存若干个城市,而实际中需要单独的数据 area = (Spinner) findViewById(R.id.area);// 取得下拉列表框 city.setOnItemSelectedListener(new OnItemSelectedListenerImpl()); } private class OnItemSelectedListenerImpl implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {// 选项改变的时候触发 adapterArea=new ArrayAdapter<CharSequence>( MainActivity.this, android.R.layout.simple_spinner_item,//显示风格 areaData[position]);//在列表视图中所代表的对象。 area.setAdapter(adapterArea);//把adapterArea添加到area } public void onNothingSelected(AdapterView<?> arg0) {// 没有选项的时候触发 // 一般不关心 } }}
结果
- (Spinner) android中Spinner的使用
- Android中Spinner的使用
- android 中spinner的使用
- Android中Spinner的使用
- Android中Spinner的使用
- Android中Spinner的使用
- Android中Spinner的使用
- android中Spinner的使用
- Android中Spinner控件及级联Spinner的使用
- Android Spinner的使用
- android spinner的使用
- Android Spinner 的使用
- android spinner的使用
- Android spinner 的使用
- android spinner的使用
- 【Android】Spinner的使用
- 关于Android中Spinner的使用
- android开发中spinner控件的使用
- linux shell学习之自动检测并重启httpd服务
- Linux 命令行快捷键 .
- vim : 相依關係: vim-common (= 2:7.2.330-1ubuntu3) 但 2:7.3.035+hg~8fdc12103333-1ubuntu7 卻將被安裝
- 嵌入式 C 语言面试题 (壹)
- 实时数据库的概念和国外产品比较
- (Spinner) android中Spinner的使用
- 如何自动评测广告内容与页面内容的相关性
- 通过CATransition实现类似UINavigationController的pushview及Popview效果
- hdu 1032
- RLE压缩算法详解
- Java回调方式:Java Listener模式
- hdu 1037
- 安装系统无法创建新的系统分区
- 关于symfony插件stOfcPlugin画多条折线的实现