Android控件第6类——杂项控件
2016-03-14 14:03
295 查看
1、Toast
Toast用于显示提示信息。
Toast不会获得焦点,没法关闭,过段时间会自动消失。
使用方法:Toast.makeText获得Toast,并设置相关属性。调用Toast对象的show方法显示。
默认情况,Toast只弹出一段话,如果想要更加复杂的Toast,可以调用Toast对象的setView方法。
2、Notification
用来发送手机状态栏消息。手机的状态栏位于屏幕最上方。
使用方法:
构造一个Notification.Builder,并为Builder对象设置相关属性
然后调用Builder对象的build方法,就可以构造出一个Notification对象。
调用getSystemService(NOTIFICATION_SERVICE)获取NotificationManager对象,并使用NotificationManager对象的notify方法发送Notification。
说明:getSystemService方法和NOTIFICATION_SERVICE常量都是Context类中声明的。
常用方法:
setAutoCancel:点击消息后,状态栏将删除通知
setDefaults:设置通知的LED灯、音乐、震动等
setSound:设置通知的音乐
setLights:设置LED等
setVibrate:设置震动
setTicker:状态栏上通知的提示信息
setSmallIcon:设置通知图标
setContentTitle:设置内容标题
setContentText:设置内容文本
setContentIntent:如果设置了contentIntent,在点击这个通知时,将会启动Intent对应的组件。这个方法对应的参数为PendingIntent
setDefault方法的参数:
Notification.DEFAULT_SOUNT
Notification.DEFAULT_VIBRATE
Notification.DEFAULT_LIGHTS
Notification.ALL
PendingIntent
Intent将会直接调用并启动对应的组件,但是对于像Notification这样的场景,并不是在产生消息的时候直接启动组件,而是在用户对消息进行某种操作的时候,才会启动组件,这个时候就需要使用PendingIntent。
使用PendingIntent.getActivities来构造PendingIntent,其参数中将要使用Intent对象。
3、CalendarView,继承自FrameLayout
用于显示和选择日期。
使用setOnDateChangeListener监听日期变化。
4、DatePicker,继承自FrameLayout
供用户选择日期。
DatePicker没有setOnDateChangedListener方法,而是在DatePicker对象的init方法中,将OnDateChangedListener对象作为参数传递进去。
5、TimePicker,继承自FrameLayout
供用户选择时间。
TimePicker与DatePicker不同,它使用setOnTimeChangedListener来传递时间改变的事件监听器。
6、NumberPicker,继承自LinearLayout
数字选择器。
通过setMinValue和setMaxValue设置最大值和最小值;通过setValue设置当前值。
通过setOnValueChangedListener传递数值改变的事件监听器。
7、SearchView,继承自LinearLayoutCompat
搜索框。
常用方法:
setIconifiedByDefault(boolean iconified):设置该搜索框默认是否自动缩小为图标
setSubmitButtonEnabled(boolean enabled):设置是否显示搜索框按钮
setQueryHint(CharSwquence hint):设置搜索框内默认显示的提示文本
setOnQueryTextListener(SearchView.OnQueryTextListener):为搜索框设置事件监听器
8、ScrollView,HorizontalScrollView,继承自FrameLayout
垂直滚动体和水平滚动条,这是两个不同的控件,分别负责在垂直方向和水平方向的滚动条。
滚动条内部只能放置一个控件。
9、TabHost,继承自FrameLayout,已不推荐使用
与TabHost一起使用的类包括:TabWidget(标签条)和TabSpec(选项卡的一个页签)。
当使用TabActivity来实现TabHost的时候,它的layout文件应该包含以下内容:
TabHost控件的id需要设置为:@android:id/tabhost
TabWidget控件的id需要设置为:@android:id/tabs
TabWidget需要包含一个FrameLayout,id为:@android:id/tabcontent
向TabHost中添加页签的方式:
生成TabSpec对象:TabSpec spec1= tabHost.newTabSpec("tabSpec1").setIndicator("标题1").setContent(R.id.tabSpec1);
将TabSpec对象加入到tabHost中:tabHost.addTab(spec1);
现在已经不推荐使用TabActivity,推荐使用Fragement代替TabActivity。
Toast用于显示提示信息。
Toast不会获得焦点,没法关闭,过段时间会自动消失。
使用方法:Toast.makeText获得Toast,并设置相关属性。调用Toast对象的show方法显示。
默认情况,Toast只弹出一段话,如果想要更加复杂的Toast,可以调用Toast对象的setView方法。
2、Notification
用来发送手机状态栏消息。手机的状态栏位于屏幕最上方。
使用方法:
构造一个Notification.Builder,并为Builder对象设置相关属性
然后调用Builder对象的build方法,就可以构造出一个Notification对象。
调用getSystemService(NOTIFICATION_SERVICE)获取NotificationManager对象,并使用NotificationManager对象的notify方法发送Notification。
说明:getSystemService方法和NOTIFICATION_SERVICE常量都是Context类中声明的。
常用方法:
setAutoCancel:点击消息后,状态栏将删除通知
setDefaults:设置通知的LED灯、音乐、震动等
setSound:设置通知的音乐
setLights:设置LED等
setVibrate:设置震动
setTicker:状态栏上通知的提示信息
setSmallIcon:设置通知图标
setContentTitle:设置内容标题
setContentText:设置内容文本
setContentIntent:如果设置了contentIntent,在点击这个通知时,将会启动Intent对应的组件。这个方法对应的参数为PendingIntent
setDefault方法的参数:
Notification.DEFAULT_SOUNT
Notification.DEFAULT_VIBRATE
Notification.DEFAULT_LIGHTS
Notification.ALL
PendingIntent
Intent将会直接调用并启动对应的组件,但是对于像Notification这样的场景,并不是在产生消息的时候直接启动组件,而是在用户对消息进行某种操作的时候,才会启动组件,这个时候就需要使用PendingIntent。
使用PendingIntent.getActivities来构造PendingIntent,其参数中将要使用Intent对象。
3、CalendarView,继承自FrameLayout
用于显示和选择日期。
使用setOnDateChangeListener监听日期变化。
4、DatePicker,继承自FrameLayout
供用户选择日期。
DatePicker没有setOnDateChangedListener方法,而是在DatePicker对象的init方法中,将OnDateChangedListener对象作为参数传递进去。
5、TimePicker,继承自FrameLayout
供用户选择时间。
TimePicker与DatePicker不同,它使用setOnTimeChangedListener来传递时间改变的事件监听器。
6、NumberPicker,继承自LinearLayout
数字选择器。
通过setMinValue和setMaxValue设置最大值和最小值;通过setValue设置当前值。
通过setOnValueChangedListener传递数值改变的事件监听器。
7、SearchView,继承自LinearLayoutCompat
搜索框。
常用方法:
setIconifiedByDefault(boolean iconified):设置该搜索框默认是否自动缩小为图标
setSubmitButtonEnabled(boolean enabled):设置是否显示搜索框按钮
setQueryHint(CharSwquence hint):设置搜索框内默认显示的提示文本
setOnQueryTextListener(SearchView.OnQueryTextListener):为搜索框设置事件监听器
8、ScrollView,HorizontalScrollView,继承自FrameLayout
垂直滚动体和水平滚动条,这是两个不同的控件,分别负责在垂直方向和水平方向的滚动条。
滚动条内部只能放置一个控件。
9、TabHost,继承自FrameLayout,已不推荐使用
与TabHost一起使用的类包括:TabWidget(标签条)和TabSpec(选项卡的一个页签)。
当使用TabActivity来实现TabHost的时候,它的layout文件应该包含以下内容:
TabHost控件的id需要设置为:@android:id/tabhost
TabWidget控件的id需要设置为:@android:id/tabs
TabWidget需要包含一个FrameLayout,id为:@android:id/tabcontent
向TabHost中添加页签的方式:
生成TabSpec对象:TabSpec spec1= tabHost.newTabSpec("tabSpec1").setIndicator("标题1").setContent(R.id.tabSpec1);
将TabSpec对象加入到tabHost中:tabHost.addTab(spec1);
现在已经不推荐使用TabActivity,推荐使用Fragement代替TabActivity。
相关文章推荐
- androidstudio导入library项目开源库
- android 获取当前版本号
- Android布局优化
- Android抽象布局——include、merge 、ViewStub
- Android中include标签的使用及注意事项
- Android内存泄漏终极解决篇
- 如何在mac本上安装android sdk
- ThreadLocal浅谈
- Android得到控件在屏幕中的坐标
- AndroidStudio配置SVN以及使用代码管理
- 活动的生存周期
- Android代码设置Shape,corners,Gradient
- Android应用的几个调试命令
- Android Material Design NavigationView 及 Palette 颜色提取器
- Android开发探索第一章 Activity生命周期及启动模式总结(三)
- android-studio gradle相关知识
- dimension适配
- 建立企业内部mavenserver并使用Android Studio公布公共项目
- android开发中error: Error parsing XML: not well-formed (invalid token)
- Android中LayoutInflater类的inflate方法的使用及注意事项