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。

  

 

转载于:https://www.cnblogs.com/huanyou/p/5273076.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法面试题80道(32)

32. 有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 当前数组a和数组b的和之差为 A sum(a) - sum(b) a的第i个元素和b的第j个元素交换后,a和…

微信昵称乱码 mysql_微信登录昵称中文乱码 Emoji表情乱码问题总结

APP中使用微信登录,流程一般是APP通过微信SDK请求code,然后APP使用code请求自己的服务器,服务器根据code获取access token,然后根据token和openid获取用户信息。在最后一步获取用户信息时经常出现中文乱码问题,这里记录…

HTML5——section,article,aside

section section元素描绘的是一个文档或者程序里的普通的section节,一般来说一个section包含一个head和一个content内容 块。section可以表示成一个小节,或者tab页面里的一个tab下的box块。一个页面里可以拆分成多个section,分别代表 introdu…

Oracle Linux 6.5 RPM安装Mysql 5.7.11

安装Oracle Liunx 6.5 开发包全部选择上 不然后面安装Mysql报错 [rootlocalhost /]# cd /tool [rootlocalhost tool]# tar -xvf mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar 查看原来安装的Mysql [rootlocalhost /]# rpm -qa | grep mysql mysql-5.1.71-1.el6.x86_64 mysql-dev…

a byte of python图书购买_A Byte of Python

A Byte of Python9789577296467 定价27.98元 共149页,Lulu Marketplace2008年出版。A Byte of Python的内容简介:A Byte of Python is a book on programming using the Python language. It serves as a tutorial or guide to the Python language for …

【python】编程学习练习题-2

1 #Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:代码:2 3 from functools import reduce4 li [1,2,3,4,5,7]5 print(sum(li))6 7 def prod(x,y): 8 return x * y…

mysql saveorupdate_Mybatis SaveOrUpdate插件

继承AbstractXmlElementGenerator类,覆盖addElements方法:public class SaveOrUpdate extends AbstractXmlElementGenerator {public SaveOrUpdate() {super();}Overridepublic void addElements(XmlElement parentElement) {XmlElement answer new Xml…

mysql以下运算符的优先级顺序正确的是_MySQL 运算符

原文:http://www.jb51.net/article/25657.htm我一贯秉承着一点:通过自己的双手真实的操作一遍之后的信息是最可靠的,所以在您参考这个小文儿的时候请不要只是“看”,单纯的瞧一瞧是得不到真知滴~~~座右铭:纸上得来终觉…

sed用法

sed -i 2a\this is a test line test.conf 就是在test.conf中的第二行下边加上一行"this is a test line" 把一个文件的内容插入另一个文件: sed -i 2 r file1 file2 2代表插到第二行下边 替换文件中的 properties 为 property, 如果想直接修改源文件&…

java连接mysql2008_在Java中如何使用jdbc连接Sql2008数据库(转)

我们在javaEE的开发中,肯定是要用到数据库的,那么在javaEE的开发中,是如何使用代码实现和SQL2008的连接的呢?在这一篇文章中,我将讲解如何最简单的使用jdbc进行SQL2008的数据库的连接的。首先我们看下我们的数据库的一…

java搭建博客系统_Spring boot 搭建个人博客系统(一)——整体思路

Spring boot 搭建个人博客系统(一)——整体思路一直想用Spring boot 搭建一个属于自己的博客系统,刚好前段时间学习了叶神的牛客项目课受益匪浅,乘热打铁也主要是学习,好让自己熟悉这类项目开发的基本流程。0. 思路博客的基本作用就是博主写文…

postgresql(2)

mysql转换postgresql1)时间格式转换from_unixtime(timestamp,%Y-%m-%d ) 》SELECT to_char(to_timestamp(t.create_time / 1000), YYYY-MM-DD HH24:MI:SS)2)字段拼接GROUP_CONCAT(restaurantid,|,cityid) 》select array_to_string(ARRAY(SELECT unnes…

java system.load()_System.load()与System.loadLibrary()

Java load 和 loadlibrary方法的区别1. 相同点:两个方法都是用来装载dll文件,不论是JNI库文件还是非JNI库文件。本地方法在被调用时都需要通过这两发方法之一将其加载至内存。2. 不同点a. System.load(String filename) ,参数为dll文件的绝对路径&…

在SQL Server中为什么不建议使用Not In子查询

原文:在SQL Server中为什么不建议使用Not In子查询在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下 下面我们…

结组项目-四则运算3

团队成员:苗堃(http://www.cnblogs.com/brucekun/p/5294368.html)、罗毅(http://www.cnblogs.com/ly199553/p/5294779.html) PSP总结http://www.cnblogs.com/ly199553/p/5295545.html 本次软件工程老师提出了新任务&a…

java 的io流需要学吗_Java Io流怎么学习呢?

滕泰科技之 io 流流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。根据处理数据…

mysql5.5.20安装_mysql5.5.20安装文档

1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。因此,我们首先要在系统中源码编译安装cmake工具。# wget http://www.doczj.com/doc/e83fe02b7375a417866f8f0a.html/files/v2.8/cmake-2.8…

心里装着你,思念就很美(我要做一个文艺范儿的程序员)

每一个静静的夜里, 都会枕着你的名字悄然入睡。 睡梦里轻轻的将你想起, 深深的把你惦起! 美丽的邂逅在梦里重现, 你我相遇在花开如诗的季节, 春花乱舞迷了你的眼, 你如花般的笑颜却迷了我的心坎。 记忆清晰…

java8新特性以及原因_JAVA8 十大新特性详解

二、Lambda 表达式首先看看在老版本的Java中是如何排列字符串的:List names Arrays.asList("peter", "anna", "mike", "xenia");Collections.sort(names, new Comparator() { Override public int compare(String a…

jsp 嵌入java_关于JSP里的Java语句嵌入问题

是这样的,我用的是Intellij 导入了一个MyEclipse的包(该包已部署在服务器上,所以是没有大错误的)。然后在一个jsp文件出现了个问题:莫名奇妙地println变成了红色,执行的时候就直接抛出异常了。今天刚接触JavaWeb不太懂,到底是怎么…