Android--状态栏的图标和文字提醒/NotificationManager与Notification对象的应用
首先,我们需要看一张截图,说明这个例子的作用是什么。
这个例子用到的东西很多,首先,我们需要现在布局文件中定义一个Spinner,代码如下:
<Spinnerandroid:id="@+id/mySpinner"android:layout_width="200px"android:layout_height="wrap_content"android:layout_x="30px"android:layout_y="60px"/>
当然,有了Spinner之后,我们需要定义其中子TextView显示的方式,需要一个以TextView为根标签的布局文件,代码如下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/text1"android:layout_width="fill_parent"android:layout_height="30sp"android:singleLine="true"android:textSize="20sp"style="?android:attr/spinnerDropDownItemStyle"/>
生成Notification的代码如下:
/* 建立新的Intent,作为点选Notification留言条时,* 会执行的Activity */ Intent notifyIntent=new Intent(this,EX05_08_1.class); notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);/* 建立PendingIntent作为设定递延执行的Activity */ PendingIntent appIntent=PendingIntent.getActivity(EX05_08.this,0,notifyIntent,0);/* 建立Notication,并设定相关参数 */ Notification myNoti=new Notification();/* 设定statusbar显示的icon */myNoti.icon=iconId;/* 设定statusbar显示的文字讯息 */myNoti.tickerText=text;/* 设定notification发生时同时发出预设声音 */myNoti.defaults=Notification.DEFAULT_SOUND;/* 设定Notification留言条的参数 */myNoti.setLatestEventInfo(EX05_08.this,"MSN登入状态",text,appIntent);/* 送出Notification */myNotiManager.notify(0,myNoti);
下面给出完整的程序代码:
1.Notification打开的页面代码:
/* 当user点击Notification留言条时,会执行的Activity */
public class EX05_08_1 extends Activity
{@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);/* 发出Toast */Toast.makeText(EX05_08_1.this, "这是模拟MSN切换登录状态的程序", Toast.LENGTH_LONG).show(); finish();}}
2.主程序代码:
public class EX05_08 extends Activity
{/*声明对象变量*/private NotificationManager myNotiManager;private Spinner mySpinner;private ArrayAdapter<String> myAdapter;private static final String[] status ={ "在线","离开","忙碌中","马上回来","脱机" };@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);/* 载入main.xml Layout */setContentView(R.layout.main);/* 初始化对象 */myNotiManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);mySpinner=(Spinner)findViewById(R.id.mySpinner);myAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,status);/* 套用myspinner_dropdown自定义下拉菜单样式 */myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown);/* 将ArrayAdapter加入Spinner对象中 */mySpinner.setAdapter(myAdapter);/* 将mySpinner加入OnItemSelectedListener */mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0,View arg1,int arg2,long arg3){/* 依照选择的item来判断要发哪一个notification */if(status[arg2].equals("在线")){setNotiType(R.drawable.msn,"在线");}else if(status[arg2].equals("离开")){setNotiType(R.drawable.away,"离开");}else if(status[arg2].equals("忙碌中")){setNotiType(R.drawable.busy,"忙碌中");}else if(status[arg2].equals("马上回来")){setNotiType(R.drawable.min,"马上回来");}else{setNotiType(R.drawable.offine,"脱机");}}@Overridepublic void onNothingSelected(AdapterView<?> arg0){}});}/* 发出Notification的method */private void setNotiType(int iconId, String text){/* 建立新的Intent,作为点选Notification留言条时,* 会执行的Activity */ Intent notifyIntent=new Intent(this,EX05_08_1.class); notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);/* 建立PendingIntent作为设定递延执行的Activity */ PendingIntent appIntent=PendingIntent.getActivity(EX05_08.this,0,notifyIntent,0);/* 建立Notication,并设定相关参数 */ Notification myNoti=new Notification();/* 设定statusbar显示的icon */myNoti.icon=iconId;/* 设定statusbar显示的文字讯息 */myNoti.tickerText=text;/* 设定notification发生时同时发出预设声音 */myNoti.defaults=Notification.DEFAULT_SOUND;/* 设定Notification留言条的参数 */myNoti.setLatestEventInfo(EX05_08.this,"MSN登入状态",text,appIntent);/* 送出Notification */myNotiManager.notify(0,myNoti);}
}
Android--状态栏的图标和文字提醒/NotificationManager与Notification对象的应用相关推荐
- android+状态栏显示图标大全,Android应用图标在状态栏上显示实现原理
一.前方 在研究<Android类似360,QQ管家那样的悬浮窗>突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示. 二.原理 其实很研究完后,才 ...
- android按钮文字左对齐,android – 带有左图标和文字完美对齐的按钮
晚上好, 我正在开发一个Android应用程序,我目前正在使用XML进行Login界面. 我正在尝试创建带有图标和文本的按钮,如下图所示: 这是我的实际结果: 使用此代码: style="? ...
- android 搜索图标居中,Android中搜索图标和文字居中的EditText
效果图: image.png 需要自定义view,具体实现如下: import android.widget.EditText; import android.content.Context; imp ...
- java手机状态栏圆形图标,android实现状态栏添加图标的函数实例
本文实例讲述了android实现状态栏添加图标的函数.分享给大家供大家参考.具体如下: private void showNotification() { // 创建一个NotificationMan ...
- android wifi布局,如何实现Android状态栏的Wi-Fi搜索周边的列表和周围Wi-Fi强度图标切换?...
我想要实现例如Android状态栏以及筛选列表一样:链接之后就显示当前Wi-Fi信号状态图标,扫描之后进行周围链接的信号强度的显示. 第一个问题 实现的结果是都在一行. 在hashmap遍历中,我尝试 ...
- android添加常驻图标到状态栏
/ * *如果没有从状态栏中删除ICON,且继续调用addIconToStatusbar,则不会有任何变化.如果将notification中的resId设置不同的图标,则会显示不同的图标 ...
- android e图标一会有一会没有反应,android解决菜单Menu添加Icon无效问题,让菜单同时显示图标和文字...
今天主要解决在Android 4.0 以上的系统中,在java代码中给菜单Menu动态添加Icon无效问题.本人通过尝试网上给出的涉及到菜单的源码类 MenuBuilder通过反射更改mOptiona ...
- Android 10 状态栏通知图标和下拉状态栏图标为白色问题
前言 安装第三方应用,会在状态栏上面和下拉状态栏通知图标显示白色 原因 因为google在android5.0上面做了限制,为了统一系统风格.之后的状态栏icon就不能够随便用一张色彩丰富的图片了,只 ...
- Android 5.0状态栏通知图标的实现
Android 5.0状态栏通知图标的实现 我之前的博客文章中有一片是介绍了关于Android5.0 下拉通知栏快捷开关的添加,文章牵扯到一个知识点就是Android 5.0状态栏通知图标的实现.那么 ...
最新文章
- 2022-2028中国空中互联网系统市场现状及未来发展趋势报告
- EventBus的粘性事件原理
- php替换文件中的数据库,批量替换php文件中的class,id的值
- Linux7改运行级别,Centos7 修改运行级别
- python password函数_python – Flask-HTTPAuth verify_password函数未接收用户名或密码
- Angular自学笔记(?)TemplateRef和ViewContainerRef
- 怎么修改腾讯视频账户和密码
- js获取el表达式的值_Vue.js
- 微软想证明Windows比Chrome好 主要源自恐惧?
- 搞懂 mismatch dep signature
- C++11 新关键字
- 【PYTHON笔记】:文件打开和关闭
- 毕业5年决定你的一生
- ASO新手快速入门教程
- 从零到一实现一个CNI
- 魔方cfop公式软件_【特别篇】最全的三阶魔方公式标记法图解汇总
- ubuntu16.04 禁用Guest用户
- 刻意练习这本书。。。。。。。
- 无意识和潜意识,两者的区别是什么?在考试中一般如何考查?|小白心理-312/347考研答疑
- 微金所张继业:规范化运作 回馈投资人