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类——杂项控件的更多相关文章

  1. C#.NET 通用控件数据源绑定类

    using System.Data; using System.Collections; using System.Collections.Generic; using System.Web.UI; ...

  2. Android 图片混排富文本编辑器控件

    概述 一个Android 图片混排富文本编辑器控件(仿兴趣部落) 详细 代码下载:http://www.demodashi.com/demo/12032.html 一.一个Android 图片混排富文 ...

  3. Android自定义控件View(三)组合控件

    不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...

  4. 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing

    [源码下载] 背水一战 Windows 10 (34) - 控件(进度类): RangeBase, Slider, ProgressBar, ProgressRing 作者:webabcd 介绍背水一 ...

  5. 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch

    [源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...

  6. 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox

    [源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...

  7. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  8. 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox

    [源码下载] 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) AutoSug ...

  9. 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox

    [源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...

随机推荐

  1. ThinkPHP5.0 实现 app微信支付功能

    相对于之前随笔写的<ThinkPHP5.0实现app支付宝支付功能>来说,php对接app微信支付功能就相对简单的多了,最近有加我的朋友问到app微信支付,所以我把app微信支付的demo ...

  2. mysql用户操作、权限分配、远程登录设置

    对最近mysql的常用运维命令进行整理 查看使用的哪个配置文件启动的mysql 1. ps aux|grep mysql|grep 'my.cnf' 如果启动的命令中选择了配置文件,则可以查询出来,也 ...

  3. ORA-245: In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location (Doc ID 1472171.1)

    巡检时遇到错误如下: alert日志: Wed Dec 19 01:00:29 2018Errors in file /oracle/base/diag/rdbms/usap/usap1/trace/ ...

  4. Ubuntu16.04下安装配置phpmyadmin

    在项目配置了阿里的druid,可以监控session,spring和详细sql的执行情况以及具体到表等信息,但是仍然发现不够详细,而且作为一个半吊子dba,一直用linux命令分配权限和管理数据库,效 ...

  5. PAT A1146 Topological Order (25 分)——拓扑排序,入度

    This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topol ...

  6. Python不能用于大型项目?人们对Python的十大误解

    Python 类型系统的特点是拥有强大.灵活的类型操作. 维基百科上对此作出的阐述. 而存在一个不争而有趣的事实是, Python 是比Java更加强类型的. Java 对于原生类型和对象区分了类型系 ...

  7. jQuery与js例子

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. SqlServer 案例:已有汽车每日行驶里程数据,计算其每日增量

    需求说明 某公司某项业务,需要获得用户每日行车里程数.已知能获得该车每日提交的总里程数,如何通过 T-SQL 来获得其每日增量里程? 解决方案 首选需要对数据进行编号,利用开窗函数 OVER() 实现 ...

  9. 从源码的角度看 React JS 中批量更新 State 的策略(下)

    这篇文章我们继续从源码的角度学习 React JS 中的批量更新 State 的策略,供我们继续深入学习研究 React 之用. 前置文章列表 深入理解 React JS 中的 setState 从源 ...

  10. React.js 入门与实战课程思维导图

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,在这里分享了课程中的思维导图,供大家参考. 原文发表于我的技术博客 此导图为课程 ...