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

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

    Xamrin开发安卓笔记(一)

     

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

    加的两个环境变量是

    ① 添加环境变量 ANDROID_SDK_HOME:

    D:Android

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

    D:Androidplatform-tools;D:Android ools;

    修改了一下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/ 
    本文版权归作者和博客园共有,禁止转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    织梦分页条添加省略号(支持动态静态)
    织梦点击数或者其他数值过【千】过【万】过【亿】的写法
    织梦文章页每个TAG标签单独输出相关文章
    织梦验证码不显示解决方法总结
    织梦搜索结果根据搜索不同栏目显示不同搜索结果模板
    织梦正则提取中英混合字符串中第一个中文汉字
    织梦让内容摘要多行文本支持换行
    织梦dede:tag标签输入添加自增autoindex
    织梦去除底部版权power by dedecms
    织梦自定义表单添加访客提交时间和访客IP+限制每天每个IP提交表单次数
  • 原文地址:https://www.cnblogs.com/carl2380/p/4918303.html
Copyright © 2011-2022 走看看