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

Xamrin开发安卓笔记(一)

 

环境虽然搭建的不稳定,不过还是可以开发的,又加了两个环境变量不知道有没有效果。待测。

加的两个环境变量是

① 添加环境变量 ANDROID_SDK_HOME:

D:\Android\

② 在path环境变量下追加路径下追加路径:

D:\Android\platform-tools;D:\Android\tools;

修改了一下CPU的虚拟技术

整体来说用c#写安卓的代码挺有意思。代码风格和写法跟用java写的基本类似,只不过有一些方法名不同而已。因为之前没写过安卓程序也没怎么开发过java程序,所以有错误的地方请指出。

SetContentView (Resource.Layout.Main);

默认程序上来第一句话就是这个,我英文又不好,所以理解是大概意思是获取布局的资源文件。

在这里有个事情需要注意一下,如果新拖了一个控件,但是在CS代码页面获取不到,可以尝试从新生成整个项目,这样就能带过来了。如果没带过来硬写的话可能会提示error,所以需要注意一下。

然后就是在页面上拖控件随便拖几个。

我拖了几个

分别是TextView,EditText,Button

因为我之前是一直在做web开发所以解释偏向webform

TextView类似Label

EditText类似Text

Button类似Button

我的命名规则基本都是在使用web的。如果谁知道这个命名规则可以告诉我下哈~

下面说一下控件的一些注意事项,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<TextView
android:text="小李"
android:layout_width="match_parent"
android:layout_height="25.0dp"
android:id="@+id/textView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtPhone"
android:text="10086"
android:layout_marginTop="30.0dp" />
<Button
android:text="通话"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnPhone"
android:textSize="25px" />
<Button
android:text="跳转"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnTo" />
</LinearLayout>

大小都是用像素表示,对齐方式都是用dp表示。dp可以是float类型。

ID命名都是@+id/youName。

VS的可视化编辑可以让我们在属性上把他们都给设置上。(VS2015 BUG 设置字体大小可能会在可视化页面失效,不知道为什么,运行起来没问题)如果之前学过安卓开发请无视这段。

Button btnPhone = FindViewById<Button>(Resource.Id.btnPhone);
EditText txtPhone = FindViewById<EditText>(Resource.Id.txtPhone);

通过视图的ID查找这个控件,这样就可以找到这个控件并且操作这个控件,c#这边可以使用两种方式来给控件添加事件。

 btnPhone.Click += delegate{};
btnPhone.Click += BtnPhone_Click;
private void BtnPhone_Click(object sender, EventArgs e)
{ }

自带的hello world是使用第一种委托方式我感觉第一种简单所以我也那么些,第二种是写完+=按两下tab生成出来的。

接下来就可以在委托或者方法里面写自己的代码进行功能操作了。我做了个打电话的小demo

 btnPhone.Click += delegate
{
//创建 是否类型提示框
var callDialog = new AlertDialog.Builder(this);
//提示框信息
callDialog.SetMessage("是否开始通话?");
//确定按钮的文字和事件
callDialog.SetNeutralButton("通话", delegate
{
//创建打电话的事件
var call = new Intent(Intent.ActionCall);
//要打给的电话号是多少
call.SetData(Android.Net.Uri.Parse("tel:" + txtPhone.Text));
//执行这个事件
StartActivity(call);
});
//取消按钮的文字和事件,如果将下面的事件注视掉,则变成一个普通的 消息框,只有确定按钮
callDialog.SetNegativeButton("取消", delegate { });
//显示出来。
callDialog.Show();
};

代码执行的方式从上到下,那么开始就创建了一个提示框中间部分我们对我们的提示框做了一些操作,最后把这个提示框显示出来。感觉这种写法类似于cs的窗体写法但是又不太像,不过理解起来很容易。

这时候就可以运行了,不过在运行之前做几个设置。

因为需要打电话所以需要调用一个接口(?)

还需要设置一下最小的可执行的安卓版本

个人建议最好设置成模拟器的版本号。

这样就能打电话了。

现更新到这,跳转功能下次在说。

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

Xamrin开发安卓笔记(一)的更多相关文章

  1. Xamrin开发安卓笔记(三)

    http://www.cnblogs.com/minCS/p/4118170.html Xamrin开发安卓笔记(三)   安装片 Xamrin开发安卓笔记(一) Xamrin开发安卓笔记(二) 这次 ...

  2. Xamrin开发安卓笔记(二)

    http://www.cnblogs.com/minCS/p/4112617.html Xamrin开发安卓笔记(二)   安装篇 Xamrin开发安卓笔记(一) 昨天调理一天AAPT.EXE 被推出 ...

  3. C#开发安卓自学笔记1

    今天开始研究了下C#开发安卓,刚开始什么都不懂,学过安卓的同学们也是用Java开发的,虽然两者开发差别不大,但是还是有差别的 // Set our view from the "main&q ...

  4. 使用VS2017开发安卓app(1)环境搭建

    本人新手,边学习边写笔记,有错误不足之处,望各位博友指正~ 想要用vs开发安卓app,需要在安装时勾选 Xamarin是一个跨平台开发框架.在这一框架内,开发iOS.Android.Windows P ...

  5. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  6. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  7. 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址

    驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...

  8. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  9. 驱动开发学习笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇

    驱动开发读书笔记. 0.05 linux 2.6 platform device register 平台设备注册 2/2 共2篇 下面这段摘自 linux源码里面的文档 : 内核版本2.6.22Doc ...

随机推荐

  1. 日期类Date

    Java在日期类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或设置日期和时间.Date类中有很多方法在JDK1.0公布后已经过时了,在8.3中我们将介绍JDK1.0中新加的用 ...

  2. ARM汇编语言(1)(基本概念)

    1.***.s文件为汇编语言文件格式: 2.ARM寄存器(以Samsung芯片为例) 2.1.要介绍arm寄存器之前我们要先了解一下arm处理器的工作模式: Arm处理器有七种工作模式,为的是形成不同 ...

  3. json 字符串 对象 互转

    json对象,json字符串,不注意的话,很容易忽视混淆.例举几个容易混的情况 1,php将变量放到input框中,通过js去读取出来的是json字符串,要想使用就要将json字段串转成json对象 ...

  4. Multiview

    新建3个ViewController的类 新建main.stroyboard,并配置好相应的布局(编辑界面,连接视图与类,ViewController的Storyboard ID,连接3个Button ...

  5. python3----练习题(弹幕跟随)

    # 导入模块 import requests # 1. 网络请求 2.pip install requests import time # 用于时间控制 import random # 随机模块 产生 ...

  6. sql 存储过程调用函数

    /****************************************************************************** ** Name: usp_biz_Con ...

  7. ddos cc攻击简单介绍(转)

    何为syn flood攻击: SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻 ...

  8. [Go语言]从Docker源码学习Go——if语句和map结构

    if语句 继续看docker.go文件的main函数 if reexec.Init() { return } go语言的if不需要像其它语言那样必须加括号,而且,可以在判断以前,增加赋值语句 语法 I ...

  9. 《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别

    原创文章,欢迎转载.转载请注明:关东升的博客 在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try? try?会将错误转换为可选值,当调 ...

  10. jpa双向一对一关联外键映射

    项目结构: Wife package auth.model; import javax.persistence.CascadeType; import javax.persistence.Column ...