本示例基于网友现有安卓项目人肉翻译,在Xamarin中替换和修改了很多方法的命名,比如某些属性需要去掉getName的get前缀, 有些方法名称需要使用Pascal命名法替换Java的Camel 命名规范

另外在内部类的使用方式上也有一些区别,但是整体上来说,大部分的方法名称都与Java 原版Android一致,所以如果有现有的Android 项目需要转换到Xamarin 还是很容易的.此处给Xamarin 66个赞

参考Java版本:http://blog.csdn.net/wxdjaqgs/article/details/44561101

博主提供了源码下载

我所做的只是将需要的图片文件贴过来.然后开始翻译代码

由于IOS品台的打包流程还没有去研究,所以本次试验没有使用ios 测试.以后有时间补上

贴代码:

using System;
using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS; namespace App3
{ [Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
public static String ACTION_BTN = "com.example.notification.btn.login"; public static String INTENT_NAME = "btnid"; public const int INTENT_BTN_LOGIN = ; static NotificationBroadcastReceiver mReceiver; public static NotificationManager NotifyManager; protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Button button = (Button)FindViewById(Resource.Id.btn_notification);
button.Click += (sender, e) => { notification(); }; } private void intiReceiver()
{
mReceiver = new NotificationBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.AddAction(ACTION_BTN);
ApplicationContext.RegisterReceiver(mReceiver, intentFilter);
} public void unregeisterReceiver()
{
if (mReceiver != null)
{
ApplicationContext.UnregisterReceiver(mReceiver);
mReceiver = null;
}
} private void notification()
{
unregeisterReceiver();
intiReceiver(); RemoteViews remoteViews = new RemoteViews(PackageName, Resource.Layout.notification);
remoteViews.SetTextViewText(Resource.Id.tv_up, "首都机场精品无线");
remoteViews.SetTextViewText(Resource.Id.tv_down, "已免费接入"); Intent intent = new Intent(ACTION_BTN);
intent.PutExtra(INTENT_NAME, INTENT_BTN_LOGIN);
PendingIntent intentpi = PendingIntent.GetBroadcast(this, , intent, PendingIntentFlags.UpdateCurrent);
remoteViews.SetOnClickPendingIntent(Resource.Id.btn_login, intentpi); Intent intent2 = new Intent();
intent2.SetClass(this, typeof(MainActivity));
intent2.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
PendingIntent intentContent = PendingIntent.GetActivity(this, , intent2, PendingIntentFlags.UpdateCurrent); Notification.Builder builder = new Notification.Builder(this); builder.SetOngoing(false);
builder.SetAutoCancel(false);
builder.SetContent(remoteViews);
builder.SetTicker("正在使用首都机场无线");
builder.SetSmallIcon(Resource.Drawable.id_airport); Notification notification = builder.Build();
notification.Defaults = NotificationDefaults.Sound;
notification.Flags = NotificationFlags.NoClear;
notification.ContentIntent = intentContent;
NotifyManager = (NotificationManager)GetSystemService(Context.NotificationService); NotificationManager notificationManager = NotifyManager;
notificationManager.Notify(, notification);
} class NotificationBroadcastReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{ String action = intent.Action;
if (action.Equals(ACTION_BTN))
{
int btn_id = intent.GetIntExtra(INTENT_NAME, );
switch (btn_id)
{
case INTENT_BTN_LOGIN:
Toast.MakeText(context, "从通知栏点登录", ToastLength.Short).Show(); if (mReceiver != null)
{
context.ApplicationContext.UnregisterReceiver(mReceiver);
mReceiver = null;
}
NotificationManager notificationManager = NotifyManager;
notificationManager.Cancel();
break;
} }
}
} } }

Xamarin 小试牛刀 通知栏消息通知和按钮(基于Java代码人肉转换)的更多相关文章

  1. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  2. [译]17-spring基于java代码的配置元数据

    spring还支持基于java代码的配置元数据.不过这种方式不太常用,但是还有一些人使用.所以还是很有必要介绍一下. spring基于java代码的配置元数据,可以通过@Configuration注解 ...

  3. 一个基于OCV的人肉选取特征点程序

    基于OpenCV写了一个交互式获取图片上的人肉选取的特征,并保存到文件的小程序. 典型应用场景:当在一个精度不高的应用需求中,相机分辨率差或者变形严重,某些棋盘点通过代码检测不出,就可以通过手工选取的 ...

  4. 基于java代码的springmvc配置

    在我的印象中,开发一个web项目首选当然是springmvc,而配置springmvc无非就是web.xml里配置其核心控制器DispatcherServlet.然后把所有的请求都交给它处理,再配个视 ...

  5. 基于java代码的Spring-mvc框架配置

     Spring 版本 4.3.2   maven项目 1.首先上项目目录图,主要用到的配置文件,略去css和js的文件 引包: 2.主要代码: (1)NetpageWebAppInitializer类 ...

  6. 使用 MVVMLight 消息通知

    欢迎阅读我的MVVMLight教程系列文章<关于 MVVMLight 设计模式系列> 在文章的其实我们就说了,MVVMLight的精华就是消息通知机制,设计的非常不错.这个东西在MVVML ...

  7. 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

    经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...

  8. 基于Java的WebSocket推送

    WebSocket的主动推送 关于消息推送,现在的解决方案如轮询.长连接或者短连接,当然还有其他的一些技术框架,有的是客户端直接去服务端拿数据. 其实推送推送主要讲的是一个推的概念,WebSocket ...

  9. 二叉树及其三种遍历方式的实现(基于Java)

    二叉树概念: 二叉树是每个节点的度均不超过2的有序树,因此二叉树中每个节点的孩子只能是0,1或者2个,并且每个孩子都有左右之分. 位于左边的孩子称为左孩子,位于右边的孩子成为右孩子:以左孩子为根节点的 ...

随机推荐

  1. 【GO】关于GO的浅显总结

    最近看了下go的入门教程,被它的强大震撼了,第一印象感觉特点主要有如下几个吧: 1. 集c,python,erlang之长,和c同属静态语言,保证效率:语法如python一样简洁,库很强大:从erla ...

  2. Java谜题心得

    1,二进制浮点数的运算是对实际算数的一种近似运算. 2,IEEE 754浮点算术保留了一个特殊的值用来表示一个不是数字的数量[IEEE 754].这个值就是NaN(“不是一个数字(Not a Numb ...

  3. PDF 补丁丁 0.5 正式版发布

    经过了两年的测试,新版本的 PDF 补丁丁已经比较稳定了.在农历新年前发布这个 0.5 版,作为正式稳定版吧. 新的 PDF 补丁丁比旧的 0.3 版增加了许多功能: PDF 可视化编辑文档书签,可从 ...

  4. DIV+CSS 常见问题及解决办法整理

    http://blog.shaogroup.com/divcss-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E5%86%B3%E5% ...

  5. mrql初级教程-概念、使用(一)

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...

  6. Quick Cocos2dx 与 Eclipse 连真机debug遇到的问题

    今天下午解决了因为偷懒一直忍受的两个让我不爽很久了的问题: 1Eclipse无法连接手机调试的问题. 在设备管理器中看到的Android设备有黄色的感叹号, 说明驱动不是最新的. 按照网上搜到的解决方 ...

  7. Android面试题随笔1

    1.如何让一个应用在手机上产生两个或多个图标? 在清单文件中的activity节点下配置如下:[5,7行代码] <activity android:name=".MainActivit ...

  8. 源码解析-knockout源码准备

    准备包括心理和资源两方面. 心理 我看过一句话说,当你用一个框架时,不要忙着看一遍使用教程就开始写项目,先去看看框架原理. 这句话我深以为然.现今前端快速发展,很多前端攻城狮都很茫然:框架更新太快了, ...

  9. AnsiString用法(转)

    源:AnsiString用法 //Ansistring 转 char void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiStrin ...

  10. tp框架 使用ajax

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...