赞美桃花的诗句 古诗:MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 - oj...
来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 19:46:22
MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 收藏 此文于2011-04-26被推荐到CSDN首页
如何被推荐?
在Android手机界面的最上方有一条显示时间、信号强度和电池状态等信息的区域,这就是Android的状态栏。当系统有一些信息要通知手机用户时,例如,收到新短信,电子邮件或未接来电时,系统通常会把信息显示在状态栏中,有的仅显示小图标,有的则显示图标及文字提醒,用手指按住状态栏往下拉,还可以展开状态栏,查看所有系统发出的信息。 在程序中,要如何把提示信息放入状态栏,又要如何显示小图标呢?Android API为了管理通知信息(Notification),定义了NotificationManager,只要调用它的Notify方法,即可将信息显示在状态栏。 先准备几张用于显示的图片,然后在界面上放一个Spinner,通过点击不同的选项,更换相应的图标。布局文件很简单:view plaincopy to clipboardprint?
01.
02.03. android:layout_width="fill_parent"
04. android:layout_height="fill_parent">
05.06. android:layout_width="fill_parent"
07. android:layout_height="wrap_content">
08.
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_width="fill_parent"
android:layout_height="wrap_content">
view plaincopy to clipboardprint?01.NotificationManager nm; 02.protected override void OnCreate(Bundle bundle) 03.{ 04. base.OnCreate(bundle); 05. SetContentView(Resource.Layout.Main); 06. try 07. { 08. nm = this.GetSystemService(Service.NotificationService) as NotificationManager; 09. Spinner mySpinner = FindViewById(Resource.Id.mySpinnner); 10. ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, new string[] { "显示图标1", "显示图标2", "显示图标3", "显示图标4", "关闭显示" }); 11. mySpinner.Adapter = adapter; 12. mySpinner.ItemSelected += (sender, e) => 13. { 14. switch (e.Position) 15. { 16. case 0: 17. Notify(Resource.Drawable.btn1, "通知1"); 18. break; 19. case 1: 20. Notify(Resource.Drawable.btn2, "通知2"); 21. break; 22. case 2: 23. Notify(Resource.Drawable.btn3, "通知3"); 24. break; 25. case 3: 26. Notify(Resource.Drawable.btn4, "通知4"); 27. break; 28. case 4: 29. nm.Cancel(0); 30. break; 31. } 32. }; 33. } 34. catch (System.Exception ex) 35. { 36. MessageBox.ShowErrorMessage(this, ex); 37. } 38.} 39.private void Notify(int iconId, string text) 40.{ 41. Activity2 act2 = new Activity2(); 42. Intent notifyIntent = new Intent(this, act2.Class); 43. notifyIntent.SetFlags(ActivityFlags.NewTask); 44. PendingIntent appIntent = PendingIntent.GetActivity(this, 0, notifyIntent, 0); 45. Notification n = new Notification 46. { 47. Icon = iconId, 48. TickerText = new Java.Lang.String(text), 49. Defaults = NotificationDefaults.Sound, 50. }; 51. n.SetLatestEventInfo(this, "通知", text, appIntent); 52. nm.Notify(0, n); 53.} NotificationManager nm;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
try
{
nm = this.GetSystemService(Service.NotificationService) as NotificationManager;
Spinner mySpinner = FindViewById(Resource.Id.mySpinnner);
ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, new string[] { "显示图标1", "显示图标2", "显示图标3", "显示图标4", "关闭显示" });
mySpinner.Adapter = adapter;
mySpinner.ItemSelected += (sender, e) =>
{
switch (e.Position)
{
case 0:
Notify(Resource.Drawable.btn1, "通知1");
break;
case 1:
Notify(Resource.Drawable.btn2, "通知2");
break;
case 2:
Notify(Resource.Drawable.btn3, "通知3");
break;
case 3:
Notify(Resource.Drawable.btn4, "通知4");
break;
case 4:
nm.Cancel(0);
break;
}
};
}
catch (System.Exception ex)
{
MessageBox.ShowErrorMessage(this, ex);
}
}
private void Notify(int iconId, string text)
{
Activity2 act2 = new Activity2();
Intent notifyIntent = new Intent(this, act2.Class);
notifyIntent.SetFlags(ActivityFlags.NewTask);
PendingIntent appIntent = PendingIntent.GetActivity(this, 0, notifyIntent, 0);
Notification n = new Notification
{
Icon = iconId,
TickerText = new Java.Lang.String(text),
Defaults = NotificationDefaults.Sound,
};
n.SetLatestEventInfo(this, "通知", text, appIntent);
nm.Notify(0, n);
}
在将状态栏拉下来单击通知的时候打开Activity2,在Activity2中,显示一个Toast。view plaincopy to clipboardprint?
01.[Activity(Label = "My Activity")]
02.public class Activity2 : Activity
03.{
04. protected override void OnCreate(Bundle bundle)
05. {
06. base.OnCreate(bundle);
07. SetContentView(Resource.Layout.Activity2);
08. Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();
09. }
10.}
[Activity(Label = "My Activity")]
public class Activity2 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Activity2);
Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();
}
}
运行效果: 发出Notification时,有三个地方可以显示文字,第一个是Notification被添加到状态栏时,跟着图标跑出的文字,在程序中以n.TickerText来设置;其余两个地方则是在Notification列表中显示的信息标题与信息内容,实在调用SetLatestEventInfo()方法是所设置的。如果在状态栏中不显示文字,只显示图片的话,只要不设置TickerText就可以了。 如果想要在通知显示的时候手机震动的话,我们就要使用Vibrator对象了。设置震动事件中,必须要知道命令其振动的时间长短、震动事件的周期等,而要在Android里设置的数值,都是以毫秒为计算的,所以在做设置的时候要注意下,如果设置的时间太小,会感觉不出来。view plaincopy to clipboardprint?01.Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator; 02.v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0); Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator;
v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0); Vibrate方法的第一个参数是一个long数组,表示震动的频率,大家可以改变数组的长度及值来试试效果。第二个参数repeat,当等于0时,震动会一直持续,若等于-1,震动就会出现一轮,震动完毕就不会再有动作。 要使手机震动,必须要在AndroidManifest.xml中加入VIBRATE权限。 view plaincopy to clipboardprint?01. 记得在模拟器上是模拟不出震动的哦~~拷到手机里震一下吧~~ 发表于 @ 2011年04月25日 21:55:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:MonoDroid学习笔记(十一)—— 使用SQLiteOpenHelper实现简易备忘录
查看最新精华文章 请访问博客首页相关文章发表评论表 情: 评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码: 重新获得验证码
专区推荐内容Android应用换电视,前30名有效!
【教程】笔记本安装MeeGo
微软BI解决方案开发简介
如何用Qt设置桌面背景
下载Windows Phone 中文培训包
下载 Windows Phone 开发工具
全新Windows Phone 开发中心
VS2010 SharePoint 入门
【免费下载】WebMatrix建站工具
AIX 专区有奖话题讨论
4.21日Adobe企业RIA开发者研讨会
MeeGo中文社区全新呈现
【图】爱上NOOK COLOR的5个理由
IPAD&NOOK COLOR屏幕对比多图
【教程】AppUp 进阶基础篇
Nokia CEO:下一步会与谁合作?
点评三星Smart TV智能电视
太震撼了!首次参加IDF有感
【教程】基于VC色温图效果实现
【教程】游戏技巧特效处理
Qt开发者社区精彩全新呈现!
Firefox 4在meego上成功安装
IDF2011:多图详解MeeGo 3月后正式发布
PayPal助力移动支付应用
<<>> 热门招聘职位【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
. 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ojlovecd/archive/2011/04/25/6362709.aspx
如何被推荐?
在Android手机界面的最上方有一条显示时间、信号强度和电池状态等信息的区域,这就是Android的状态栏。当系统有一些信息要通知手机用户时,例如,收到新短信,电子邮件或未接来电时,系统通常会把信息显示在状态栏中,有的仅显示小图标,有的则显示图标及文字提醒,用手指按住状态栏往下拉,还可以展开状态栏,查看所有系统发出的信息。 在程序中,要如何把提示信息放入状态栏,又要如何显示小图标呢?Android API为了管理通知信息(Notification),定义了NotificationManager,只要调用它的Notify方法,即可将信息显示在状态栏。 先准备几张用于显示的图片,然后在界面上放一个Spinner,通过点击不同的选项,更换相应的图标。布局文件很简单:view plaincopy to clipboardprint?
01.
02.
04. android:layout_height="fill_parent">
05.
07. android:layout_height="wrap_content">
08.
android:layout_height="fill_parent">
android:layout_height="wrap_content">
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
try
{
nm = this.GetSystemService(Service.NotificationService) as NotificationManager;
Spinner mySpinner = FindViewById
ArrayAdapter
mySpinner.Adapter = adapter;
mySpinner.ItemSelected += (sender, e) =>
{
switch (e.Position)
{
case 0:
Notify(Resource.Drawable.btn1, "通知1");
break;
case 1:
Notify(Resource.Drawable.btn2, "通知2");
break;
case 2:
Notify(Resource.Drawable.btn3, "通知3");
break;
case 3:
Notify(Resource.Drawable.btn4, "通知4");
break;
case 4:
nm.Cancel(0);
break;
}
};
}
catch (System.Exception ex)
{
MessageBox.ShowErrorMessage(this, ex);
}
}
private void Notify(int iconId, string text)
{
Activity2 act2 = new Activity2();
Intent notifyIntent = new Intent(this, act2.Class);
notifyIntent.SetFlags(ActivityFlags.NewTask);
PendingIntent appIntent = PendingIntent.GetActivity(this, 0, notifyIntent, 0);
Notification n = new Notification
{
Icon = iconId,
TickerText = new Java.Lang.String(text),
Defaults = NotificationDefaults.Sound,
};
n.SetLatestEventInfo(this, "通知", text, appIntent);
nm.Notify(0, n);
}
在将状态栏拉下来单击通知的时候打开Activity2,在Activity2中,显示一个Toast。view plaincopy to clipboardprint?
01.[Activity(Label = "My Activity")]
02.public class Activity2 : Activity
03.{
04. protected override void OnCreate(Bundle bundle)
05. {
06. base.OnCreate(bundle);
07. SetContentView(Resource.Layout.Activity2);
08. Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();
09. }
10.}
[Activity(Label = "My Activity")]
public class Activity2 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Activity2);
Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();
}
}
运行效果: 发出Notification时,有三个地方可以显示文字,第一个是Notification被添加到状态栏时,跟着图标跑出的文字,在程序中以n.TickerText来设置;其余两个地方则是在Notification列表中显示的信息标题与信息内容,实在调用SetLatestEventInfo()方法是所设置的。如果在状态栏中不显示文字,只显示图片的话,只要不设置TickerText就可以了。 如果想要在通知显示的时候手机震动的话,我们就要使用Vibrator对象了。设置震动事件中,必须要知道命令其振动的时间长短、震动事件的周期等,而要在Android里设置的数值,都是以毫秒为计算的,所以在做设置的时候要注意下,如果设置的时间太小,会感觉不出来。view plaincopy to clipboardprint?01.Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator; 02.v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0); Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator;
v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0); Vibrate方法的第一个参数是一个long数组,表示震动的频率,大家可以改变数组的长度及值来试试效果。第二个参数repeat,当等于0时,震动会一直持续,若等于-1,震动就会出现一轮,震动完毕就不会再有动作。 要使手机震动,必须要在AndroidManifest.xml中加入VIBRATE权限。 view plaincopy to clipboardprint?01.
查看最新精华文章 请访问博客首页相关文章发表评论表 情: 评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码: 重新获得验证码
专区推荐内容Android应用换电视,前30名有效!
【教程】笔记本安装MeeGo
微软BI解决方案开发简介
如何用Qt设置桌面背景
下载Windows Phone 中文培训包
下载 Windows Phone 开发工具
全新Windows Phone 开发中心
VS2010 SharePoint 入门
【免费下载】WebMatrix建站工具
AIX 专区有奖话题讨论
4.21日Adobe企业RIA开发者研讨会
MeeGo中文社区全新呈现
【图】爱上NOOK COLOR的5个理由
IPAD&NOOK COLOR屏幕对比多图
【教程】AppUp 进阶基础篇
Nokia CEO:下一步会与谁合作?
点评三星Smart TV智能电视
太震撼了!首次参加IDF有感
【教程】基于VC色温图效果实现
【教程】游戏技巧特效处理
Qt开发者社区精彩全新呈现!
Firefox 4在meego上成功安装
IDF2011:多图详解MeeGo 3月后正式发布
PayPal助力移动支付应用
<<>> 热门招聘职位【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
. 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ojlovecd/archive/2011/04/25/6362709.aspx
MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 - oj...
学习笔记——HTML头部信息(Head)
特别提醒:请注意,骨折病人有9忌!!!
警方提醒:请注意检查您家门口是否有圆圈、三角、对勾、叉号、闪电等符号
警方提醒:请注意检查您家门口是否有圆圈、三角、对勾、叉号、闪电等符号
点评“十二五”规划人口政策—请放妇女一条“生”路吧 - 易富贤的日志 - 网易博客
点评“十二五”规划人口政策—请放妇女一条“生”吧 - 易富贤的日志 - 网易博客
点评“十二五”规划人口政策—请放妇女一条“生贤的日志 - 网易博客
点评“十二五”规划人口政策—请放妇女一条“”路吧 - 易富贤的日志 - 网易博客
十七届中央纪委第六次全会学习笔记(十二)
学习笔记—— 字体大小
【新提醒】我在现场——学习观察小案例
公安局特别提醒请相互转告,歹徒又有新的手段啦!
公安局特别提醒请相互转告,歹徒又有新的手段啦!-111012
十二宫位笔记——【转】
N种信息提醒您:
《学习哪有那么难》学习笔记!
《学习哪有那么难》学习笔记!
《学习哪有那么难》学习笔记
【新提醒】生活插曲看衣仿衣集——款款迷人(有图解)
【新提醒】sql语句学习 细点
学习笔记——文字颜色
学习笔记——图片右边+文字
学习笔记——图片添加文字