博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mono.Android 基础
阅读量:5275 次
发布时间:2019-06-14

本文共 3684 字,大约阅读时间需要 12 分钟。

Mono.Android 基础 ()

Mono.Android项目结构是

— Project + Assets + Resources     + drawable     + layout     + values      Resource.Designer.cs  XXActivity.cs

其中, Layout文件夹下存放App的前端UI文件,前端UI是一个后缀名为.axml的XML文件,该文件有两个视图:DesignSource。在Design视图中支持可视化控件的拖拽。 App的后端是Activity的类,自己写的类都要继承基类Activity, 并在自己类中操作前端页面的控件。 Assets文件夹下存放项目的静态文件,例如你的大纲XML文件等,这里的文件可以通过以下流方法Assets.Open()读取: 

using (StreamReader sr = new StreamReader(Assets.Open("sample.xml")))        {            string content = sr.ReadToEnd();        }

Resource.Designer.cs文件会记录所有项目中的控件的Id, 也包括UI页面。有时候在页面上加入一个新的控件以后,它的Id并没有自动加入Resource.Designer.cs这个文件,或者是这个文件没有重新生成。出现这个情况,一是可以单击保存所有 按钮,  然后在解决方案窗口中单击刷新图标, 然后,打开文件Resource.Designer.cs , 然后关闭文件Resource.Designer.cs。 如果还是不行,可以检查项目文件(XX.csproj,使用Notepad打开), 确保以下三行存在: 

Resources
Resources\Resource.Designer.cs
Resource

关联Activity的前端UI页面

使用SetContentView(Resource.Layout.Main)将Activity类关联到前端页面。完成关联以后,可以通过FindViewById()获得页面中定义的控件。

// Set our view from the "main" layout resource        SetContentView(Resource.Layout.Main);        // Get our button from the layout resource,        // and attach an event to it        Button button = FindViewById

Activity的特性MainLauncher=true,标识这个文件是应用的入口。

初始时代码如下: 

using Android.App;using Android.Widget;using Android.OS;using System.IO;using System.Xml;namespace Example.Mono.Android{    [Activity(Label = "Example.Mono.Android", MainLauncher = true, Icon = "@drawable/icon")]    public class MainActivity : Activity    {        int count = 1;        protected override void OnCreate(Bundle bundle)        {            base.OnCreate(bundle);            // Set our view from the "main" layout resource            SetContentView(Resource.Layout.Main);            // Get our button from the layout resource,            // and attach an event to it            Button button = FindViewById

关于页面跳转

在Layout中加入新Android Layout页面Second.axml, 在项目中加入新Activity类SecondActivity.cs。在Main页面,单击Button,然后跳转到Second页面,并且把参数传递过去。 创建新的Activity的实例是使用Intent,在Intent中把当前Activity的上下文传进去,使用SecondActivity类型初始化Intent,即var secondActivity = new Intent(this, typeof(SecondActivity));。  使用secondActivity.PutExtra()可以把参数传到second页, secondActivity.PutExtra("Arg1", "Argument from main page!");。启动该Intent,StartActivity(secondActivity);。 代码如下:

button.Click += delegate {                var secondActivity = new Intent(this, typeof(SecondActivity));                secondActivity.PutExtra("Arg1", "Argument from main page!");                StartActivity(secondActivity);            };

在second页的OnCreate方法中,使用Intent.GetStringExtra接受传递的参数。 代码如下:

[Activity(Label = "SecondActivity")]public class SecondActivity : Activity{    protected override void OnCreate(Bundle bundle)    {        base.OnCreate(bundle);        // Create your application here        SetContentView(Resource.Layout.Second);        TextView textView1 = FindViewById
(Resource.Id.textView1); var argument = Intent.GetStringExtra("Arg1") ?? "Not Available"; textView1.Text = "Welcome! It's TextView from second page." + argument; }}

转载于:https://www.cnblogs.com/qixue/p/4816918.html

你可能感兴趣的文章
重新学习python系列(二)? WTF?
查看>>
shell脚本统计文件中单词的个数
查看>>
SPCE061A学习笔记
查看>>
sql 函数
查看>>
hdu 2807 The Shortest Path 矩阵
查看>>
熟悉项目需求,要知道产品增删修改了哪些内容,才会更快更准确的在该项目入手。...
查看>>
JavaScript 变量
查看>>
java实用类
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
排序sort (一)
查看>>
Parrot虚拟机
查看>>
Teamcenter10 step-by-step installation in Linux env-Oracle Server Patch
查看>>
Struts2学习(三)
查看>>
Callable和Runnable和FutureTask
查看>>
GitHub 多人协作开发 三种方式:
查看>>
文本域添加编辑器
查看>>
Yum安装MySQL以及相关目录路径和修改目录
查看>>
java获取hostIp和hostName
查看>>