首先,我们需要看一张截图,说明这个例子的作用是什么。

这个例子用到的东西很多,首先,我们需要现在布局文件中定义一个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对象的应用相关推荐

  1. android+状态栏显示图标大全,Android应用图标在状态栏上显示实现原理

    一.前方 在研究<Android类似360,QQ管家那样的悬浮窗>突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示. 二.原理 其实很研究完后,才 ...

  2. android按钮文字左对齐,android – 带有左图标和文字完美对齐的按钮

    晚上好, 我正在开发一个Android应用程序,我目前正在使用XML进行Login界面. 我正在尝试创建带有图标和文本的按钮,如下图所示: 这是我的实际结果: 使用此代码: style="? ...

  3. android 搜索图标居中,Android中搜索图标和文字居中的EditText

    效果图: image.png 需要自定义view,具体实现如下: import android.widget.EditText; import android.content.Context; imp ...

  4. java手机状态栏圆形图标,android实现状态栏添加图标的函数实例

    本文实例讲述了android实现状态栏添加图标的函数.分享给大家供大家参考.具体如下: private void showNotification() { // 创建一个NotificationMan ...

  5. android wifi布局,如何实现Android状态栏的Wi-Fi搜索周边的列表和周围Wi-Fi强度图标切换?...

    我想要实现例如Android状态栏以及筛选列表一样:链接之后就显示当前Wi-Fi信号状态图标,扫描之后进行周围链接的信号强度的显示. 第一个问题 实现的结果是都在一行. 在hashmap遍历中,我尝试 ...

  6. android添加常驻图标到状态栏

    / *    *如果没有从状态栏中删除ICON,且继续调用addIconToStatusbar,则不会有任何变化.如果将notification中的resId设置不同的图标,则会显示不同的图标     ...

  7. android e图标一会有一会没有反应,android解决菜单Menu添加Icon无效问题,让菜单同时显示图标和文字...

    今天主要解决在Android 4.0 以上的系统中,在java代码中给菜单Menu动态添加Icon无效问题.本人通过尝试网上给出的涉及到菜单的源码类 MenuBuilder通过反射更改mOptiona ...

  8. Android 10 状态栏通知图标和下拉状态栏图标为白色问题

    前言 安装第三方应用,会在状态栏上面和下拉状态栏通知图标显示白色 原因 因为google在android5.0上面做了限制,为了统一系统风格.之后的状态栏icon就不能够随便用一张色彩丰富的图片了,只 ...

  9. Android 5.0状态栏通知图标的实现

    Android 5.0状态栏通知图标的实现 我之前的博客文章中有一片是介绍了关于Android5.0 下拉通知栏快捷开关的添加,文章牵扯到一个知识点就是Android 5.0状态栏通知图标的实现.那么 ...

最新文章

  1. 2022-2028中国空中互联网系统市场现状及未来发展趋势报告
  2. EventBus的粘性事件原理
  3. php替换文件中的数据库,批量替换php文件中的class,id的值
  4. Linux7改运行级别,Centos7 修改运行级别
  5. python password函数_python – Flask-HTTPAuth verify_password函数未接收用户名或密码
  6. Angular自学笔记(?)TemplateRef和ViewContainerRef
  7. 怎么修改腾讯视频账户和密码
  8. js获取el表达式的值_Vue.js
  9. 微软想证明Windows比Chrome好 主要源自恐惧?
  10. 搞懂 mismatch dep signature
  11. C++11 新关键字
  12. 【PYTHON笔记】:文件打开和关闭
  13. 毕业5年决定你的一生
  14. ASO新手快速入门教程
  15. 从零到一实现一个CNI
  16. 魔方cfop公式软件_【特别篇】最全的三阶魔方公式标记法图解汇总
  17. ubuntu16.04 禁用Guest用户
  18. 刻意练习这本书。。。。。。。
  19. 无意识和潜意识,两者的区别是什么?在考试中一般如何考查?|小白心理-312/347考研答疑
  20. 微金所张继业:规范化运作 回馈投资人

热门文章

  1. 移动端 元素外面使用伪类after加边框 导致其内部元素无法选中
  2. 【Android】Eclipse自动编译NDK/JNI的三种方法
  3. R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
  4. 超融合刚刚好——蓝色光标成功应用联想超融合解决方案
  5. MySQL输入密码后闪退的解决方法
  6. JS获取当前对象大小以及屏幕分辨率等...
  7. 减少科研文章写作错误的一点小技巧
  8. UVALive 4318 Navy maneuvers
  9. SRM遇到的一个数论技巧——最大公约数和最小公倍数的关系
  10. extjs 中iframe内存泄漏的问题