Android总结(四)
2016-04-23 14:14
573 查看
下拉列表框与OnItemSelectedListener
1.联动菜单——就是指提供两个下拉列表,当地一个下拉列表的选项发生改变时,第二个下拉列表也可以显示出与一级下拉列表相关的数据项。
时间监听器接口:android.widget.TimePicker.OnTimeChangedListener
2.时间的监听用setOnTimeChangedListener()方法;而日期的监听需要使用init()方法。 ##
1.联动菜单——就是指提供两个下拉列表,当地一个下拉列表的选项发生改变时,第二个下拉列表也可以显示出与一级下拉列表相关的数据项。
(1)定义城市信息的资源文件----values\city_data.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="city_lables"> <item>中国 - 北京</item> <item>中国 - 上海</item> <item>中国 - 广州</item> </string-array> </resources>
配置字符串信息:-------values\strings.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MySpinnerListenerDemo!</string> <string name="app_name">下拉列表框事件</string> <string name="city_prompt">选择你喜欢的城市:</string> <string name="area_prompt">选择你喜欢的城区:</string> </resources>
布局文件:----main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Spinner android:id="@+id/city" android:prompt="@string/city_prompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/city_lables"/> <Spinner android:id="@+id/area" android:prompt="@string/city_prompt" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
主程序,实现联动: public class MySpinnerListenerDemo extends Activity { private Spinner city = null; // 下拉列表框内容 private Spinner area = null; // 二级列表 private String[][] areaData = new String[][] { { "东城", "西城", "朝阳", "大兴", "平谷" }, // 针对于一级的子信息 { "黄浦", "杨浦", "闵行" }, // 针对于二级的子信息 { "广州" } // 针对于三级的子信息 }; // 子菜单项 private ArrayAdapter<CharSequence> adapterArea = null;//下拉列表内容适配器 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.main); this.city = (Spinner) super.findViewById(R.id.city); // 取得下拉列表框 this.area = (Spinner) super.findViewById(R.id.area); // 取得下拉列表框 this.city.setOnItemSelectedListener(new OnItemSelectedListenerImpl()); } private class OnItemSelectedListenerImpl implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 表示选项改变的时候触发 MySpinnerListenerDemo.this.adapterArea = new ArrayAdapter<CharSequence>( MySpinnerListenerDemo.this, android.R.layout.simple_spinner_item, MySpinnerListenerDemo.this.areaData[position]); // 定义所有的列表项 MySpinnerListenerDemo.this.area .setAdapter(MySpinnerListenerDemo.this.adapterArea);// 设置二级下拉列表的选项内容 } public void onNothingSelected(AdapterView<?> arg0) { // 表示没有选项的时候触发 // 一般此方法现在不关心 } } }
监听日期与时间的改变
1.日期监听器接口:android.widget.DatePicker.OnDateChangedListener时间监听器接口:android.widget.TimePicker.OnTimeChangedListener
2.时间的监听用setOnTimeChangedListener()方法;而日期的监听需要使用init()方法。 ##
public class MyDateTimeDemo extends Activity { private EditText input = null; private DatePicker date = null; private TimePicker time = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.main); this.input = (EditText) super.findViewById(R.id.input); this.date = (DatePicker) super.findViewById(R.id.date); this.time = (TimePicker) super.findViewById(R.id.time); this.time.setIs24HourView(true); // 采用24小时制显示时间 this.time.setOnTimeChangedListener(new OnTimeChangedListenerImpl()); this.date.init(this.date.getYear(), this.date.getMonth(), this.date.getDayOfMonth(), new OnDateChangedListenerImpl()); this.setDateTime(); // 希望一开始可以设置一些文本的内容 } private class OnTimeChangedListenerImpl implements OnTimeChangedListener { public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { MyDateTimeDemo.this.setDateTime(); } } private class OnDateChangedListenerImpl implements OnDateChangedListener { public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { MyDateTimeDemo.this.setDateTime(); } } public void setDateTime() { // 由于日期时间更改之后文本输入组件的内容也要修改 this.input.setText(this.date.getYear() + "-" + (this.date.getMonth() + 1) + "-" + this.date.getDayOfMonth() + " " + this.time.getCurrentHour() + ":" + this.time.getCurrentMinute()); // 修改文本的内容 } }
相关文章推荐
- AndroidStudio2.0搭建Ndk环境&成功编译使用
- android+json+php+mysql实现用户反馈功能
- android 广播机制,对接收方的限制
- Android中的RecyclerView: 基础知识
- Android性能优化之路(五年之痒)
- android studio2.0去除运行按钮旁边闪电标志的方法
- 阅读Android源码
- android 远程显示设备与本地设备坐标转换
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- Android目录结构(详解)
- Android-ContentProvider使用
- 【Android学习】Android studio 使用AIDL
- android launcher学习点滴
- 创建第一个Android项目
- android的service基础
- 《Android JNI》03 Jni中的反射
- Android:使用Gson解析复杂的JSON数据
- Android Studio下提示Couldn't load BaiduMapSDK_v3_1_0
- Android Service的生命周期
- Android service 弹出对话框 ,启动activity