Android控件第6类——杂项控件
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灯、音乐、震动等
- 参数:
- Notification.DEFAULT_SOUNT
- Notification.DEFAULT_VIBRATE
- Notification.DEFAULT_LIGHTS
- Notification.ALL
- 参数:
- setSound:设置通知的音乐
- setLights:设置LED等
- setVibrate:设置震动
- setTicker:状态栏上通知的提示信息
- setSmallIcon:设置通知图标
- setContentTitle:设置内容标题
- setContentText:设置内容文本
- setContentIntent:如果设置了contentIntent,在点击这个通知时,将会启动Intent对应的组件。这个方法对应的参数为PendingIntent
PendingIntent
- Intent将会直接调用并启动对应的组件,但是对于像Notification这样的场景,并不是在产生消息的时候直接启动组件,而是在用户对消息进行某种操作的时候,才会启动组件,这个时候就需要使用PendingIntent。
- 使用PendingIntent.getActivities来构造PendingIntent,其参数中将要使用Intent对象。
在测试的时候,在Activity中通过getIntent获取到的Intent对象中,总是获取不到想要的信息。
在网上搜索发现,如果使用了相同的Intent,在创建PendingIntent的时候需要设置Flags参数为PendingIntent.FLAG_CANCEL_CURRENT,如下所示。
PendingIntent.getActivity(AtyNotification.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)
如果不是相同的Intent,Flags参数可不设置为PendingIntent.FLAG_CANCEL_CURRENT
Intent intent2 = new Intent(Intent.ACTION_VIEW);
intent2.setData(Uri.parse("tel:10086"));
notification.setContentIntent(PendingIntent.getActivity(AtyNotification.this, 0, intent2, 0));
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。
Android控件第6类——杂项控件的更多相关文章
- C#.NET 通用控件数据源绑定类
using System.Data; using System.Collections; using System.Collections.Generic; using System.Web.UI; ...
- Android 图片混排富文本编辑器控件
概述 一个Android 图片混排富文本编辑器控件(仿兴趣部落) 详细 代码下载:http://www.demodashi.com/demo/12032.html 一.一个Android 图片混排富文 ...
- Android自定义控件View(三)组合控件
不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...
- 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing
[源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
[源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
[源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...
- 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton
[源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...
- 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox
[源码下载] 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) AutoSug ...
- 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox
[源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...
随机推荐
- Linux下 XordDos(BillGates)木马查杀记录
最近朋友的一台服务器突然网络异常,cpu占用率暴表,登录上去一查,cpu占用300% 左右,流量异常,经过看查进程,获取信息最终确认为中了dos木马,经过几天的研究,基本上已经清除,以下是清理记录. ...
- Oracle Drop表并未直接删除 drop table xx purge
drop表 执行drop table xx 语句 drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 通 ...
- http协议以及get和post请求
HTTP协议是网络传输信息的一种规范. 就好比两个人之间的交流,甲只会讲英语,乙只会说汉语,结果是他们必然无法开怀畅谈. HTTP协议也类 GET 请求获取 Request-URI 所标识的资源 ...
- 数据库隔离级别深入理解(ORACLE)
TRANSACTION_READ_UNCOMMITTED 1 这种隔离级别最低,脏读,不可重复读,幻读都会发生,我用的oracle,并没有支持这个级别,不作研究. TRANSACTION_READ_C ...
- python inspect.stack() 的简单使用
1. #python # -*- encoding: utf-8 -*- #获取函数的名字 import inspect def debug(): callnamer = inspect.stack( ...
- python 知识2
零. type()函数怎么使用 type()的使用方法:type(对象)type()是接收一个对象当做参考,之后反回对象的相应类型.>>>type(1)<type 'int'& ...
- CF1038E Maximum Matching 搜索/区间DP
题目传送门:http://codeforces.com/problemset/problem/1038/E 题意:给出$N$个方块,每个方块有左右两种颜色$a,b$(可以翻转使左右两种颜色交换)和一个 ...
- flask多app和栈的应用
一.简介 flask的蓝图可以实现url的分发,当有多个app时也可以利用app进行url分发,这里介绍下使用方式和内部原理以及栈的应用. 二.多app使用 使用示例 from werkzeu ...
- 【精】【入门篇】js正则表达式
前言 最近有了点时间,就回头看了一下<学习正则表达式>这本书.怎么说呢,这本书适合从零开始学习正则表达式或者有一点基础但是想要加强这方面能力的读者.这本书的风格是“实践出真知”,使用归纳方 ...
- LVM : 扩展文件系统的容量
如果发现文件系统的容量不足了,可以通过 LVM 轻松的进行扩展(当然也可以进行缩减操作).本文将紧接前文中的 demo 详细的介绍扩展文件系统的操作过程.说明:本文的演示环境为 ubuntu 16.0 ...