zoukankan      html  css  js  c++  java
  • Xamrin开发安卓笔记(二)

    http://www.cnblogs.com/minCS/p/4112617.html

    Xamrin开发安卓笔记(二)

     

    昨天调理一天AAPT.EXE 被推出的问题(错误代码 error MSB6006: "aapt.exe" exited with code -1073741819),纠结一天到底是什么原因,寝食难安,后来想通了可能是安卓模拟器的原因。今早换了一个安卓SDK,到现在没出现AAPT的错误。

    并且可以可视化布局(之前可视化布局很丑陋)。然后接着写,暂时抛弃vs2015,因为2015的BUG直接影响我编写的感觉,所以先用vs2013 update4继续写。

    首先解决的是真机调试的问题,之前没搞过安卓,不知道这么调试,其实超级简单。插上安卓机器,开发者模式的USB调试选项打开,找个什么手机管家之类的东西,把驱动安装上(有的手机型号不自动安装驱动,导致能识别他是个移动设备但是无法让VS认识他,所以最好找个什么管家之类的东西把驱动安装上)。

    首先写的是跳转传值的事情,这个属于常用功能。布局就不多说了,就是一个按钮,拖进来改个名字。改个ID,生成(为了避免CS文件找不到这个ID,这个事情以后不在说了)

    1 btnTo.Click += delegate
    2             {
    3                 //要跳转的地址
    4                 var second = new Intent(this, typeof(SecondActivity));
    5                 //带过去的参数(key,value)
    6                 second.PutExtra("tel", txtPhone.Text);
    7                //执行跳转
    8                 StartActivity(second);
    9             };

    带参数跳转到另一个页面。另一个页面获取参数

     1 Intent.GetStringExtra("tel"); 

    通过KEY索检数据。我感觉跳转很简单。。

    接下来说通知事件,通知事件有好几种实现方式,不过我写完之后VS告诉我使用的方法已经过时。这让我很伤心。

    先说一下普通的通知吧,安卓的通知是可以闪灯,响声,震动。这些通过通知的属性来实现。

    通知调用 Notification 类来实现。看下具体代码

     1   btnPush.Click += delegate {
     2                 Notification notify = new Notification(Resource.Drawable.Icon, "你有新的短消息");
               //响声,震动,LED闪灯需要调用这个属性 3 notify.Defaults = NotificationDefaults.All; 4 //注意RingtoneManager这个需要引用 Android.Media;获取系统声音 5 Android.Net.Uri uri = RingtoneManager.GetDefaultUri(RingtoneType.Notification); 6 notify.Sound = uri;//铃声路径 7 //震动方式数组形式,{震动时间,间隔时间,震动时间} 8 notify.Vibrate = new long[] { 1000,300,1000}; 9 //Color静态类需要引用这个 Android.Graphics 10 //LED等是自动循环的不用像震动那样设置循环间隔 11 notify.LedARGB = Color.Green; 12 notify.LedOffMS = 1000;//显示时间 13 notify.LedOnMS = 1000;//关闭时间 14 notify.Flags = NotificationFlags.ShowLights | notify.Flags; 15 var pIntent = PendingIntent.GetActivity(this, 0, 16 new Intent(this, typeof(SecondActivity)), PendingIntentFlags.UpdateCurrent); 17 notify.SetLatestEventInfo(this, "通知头", "通知内容", pIntent); 18 Mgr.Notify(0, notify);//通知ID和通知 19 };

    据说这个是2.0时代的代码,很古老。

    Mgr的初始化写法是

    var Mgr = (NotificationManager)GetSystemService(NotificationService);

    当然你可以不实用弱变量,随意咯。

    这里重点说一下这句话

    var pIntent = PendingIntent.GetActivity(this, 0,new Intent(this, typeof(SecondActivity)), PendingIntentFlags.UpdateCurrent);

    索检一个新的活动,第一个参数是上下文(貌似所有关于上下文的时候都是this)第二个参数巴拉巴拉说一大堆结果括号里面说暂时没啥用,但是你必须写。第三是点击通知启动哪个活动页面,第四个是发送标志。

    这句话目的是当用户点击通知的时候执行那个页面。不写不行,因为通知必须指定到某个地方去。

    最后执行通知。

    另一个写法据说是3.0的写法。如下

     1 btnBuilder.Click += delegate
     2             {
     3                 var pIntent = PendingIntent.GetActivity(this, 0, new Intent(this, typeof(SecondActivity)), PendingIntentFlags.UpdateCurrent);
     4                 var notify = new Notification.Builder(this)
     5                     .SetTicker("你有新的短消息")
     6                     .SetSmallIcon(Resource.Drawable.Icon)
     7                     .SetContentTitle("通知头")
     8                     .SetContentText("通知内容")
     9                     .SetContentInfo("右下角");
    10                 Mgr.Notify(0, notify.Notification);//通知ID重复则不会被取消貌似重复的话会变成另一个ID
    11             };

    我欣赏3.0的写法。简约而不简单。所有的东西都可以靠 点来完成,而且参数属性比2.0写法还要多。这个写法也可以写上震动,闪灯,声音,可以自己看看哪个是。

    今天先更新这么多。下一次更新估计就开始系统的学习一些东西了。

    总结一下这几天的体验,安装方面尽量找靠谱的模拟器,我就在模拟器上吃亏,Xamrin版本尽量最新。

    代码执行风格类似MVC。

    所有事件都是先 实例化,在去修改他的各种属性,最后执行。而不像以前写web那样,页面画一画CS代码直接写执行。几乎每个东西都需要去做实例化。

    var变量和强类型,自己把握用哪个,我个人觉得var其实不错。

    就这样吧。接下来会继续更新的。

    如果有哪里描述不清楚或者错误,请指出,我会马上更改的,毕竟我也是第一次用这个东西。

    转载请注明出处。


    作者:小胖李 
    出处:http://www.cnblogs.com/minCS/ 
    本文版权归作者和博客园共有,禁止转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    解决xcode5升级后,Undefined symbols for architecture arm64:问题
    第8章 Foundation Kit介绍
    app 之间发送文件 ios
    iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
    CRM下载对象一直处于Wait状态的原因
    错误消息Customer classification does not exist when downloading
    How to resolve error message Distribution channel is not allowed for sales
    ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼
    有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
    SAP GUI和Windows注册表
  • 原文地址:https://www.cnblogs.com/carl2380/p/4918304.html
Copyright © 2011-2022 走看看