Mono.Android 基础 (地址)

Mono.Android项目结构是

— Project+ Assets+ Resources+ drawable+ layout+ valuesResource.Designer.csXXActivity.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打开), 确保以下三行存在:

<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
<AndroidResgenClass>Resource</AndroidResgenClass>

关联Activity的前端UI页面

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

        // Set our view from the "main" layout resourceSetContentView(Resource.Layout.Main);// Get our button from the layout resource,// and attach an event to itButton button = FindViewById<Button>(Resource.Id.MyButton);          button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };

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 resourceSetContentView(Resource.Layout.Main);// Get our button from the layout resource,// and attach an event to itButton button = FindViewById<Button>(Resource.Id.MyButton);          button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };using (StreamReader sr = new StreamReader(Assets.Open("sample.xml"))){string content = sr.ReadToEnd();XmlDocument xDoc = new XmlDocument();xDoc.LoadXml(content);var level = xDoc.SelectNodes("//SecondLevel[@id='sl1']");}}}
}

关于页面跳转

在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 hereSetContentView(Resource.Layout.Second);TextView textView1 = FindViewById<TextView>(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

Mono.Android 基础相关推荐

  1. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  2. android intent 源码,Android 基础之 IntentService 源码

    Android 基础之 IntentService 源码 Android,IntentService,源码 IntentService 位于 android.app 包下面,是 Service 的一个 ...

  3. 【Android基础】动画

    Android里的动画分为两类,以3.0版本为分水岭. 3.0前已存在 帧动画 补间动画 3.0出现 属性动画 帧动画 顾名思义,快速切换几张图片来达到动画的效果. 建立帧动画xml Note:不要把 ...

  4. Xamarin.Android提示找不到mono.Android.Support.v4

    Xamarin.Android提示找不到mono.Android.Support.v4 错误信息:Error: Exception while loading assemblies: System.I ...

  5. 基于Android移动终端的微型餐饮管理系统的设计与实现4——Android基础

    本章将介绍一些在开发中用到的一些常用且值得介绍的Android 基础知识和技术,包括Fragment.Slidingmenu.RecyelerView.HelloCharts框架和Ormlite框架. ...

  6. 关于android基础教程一书的初步解读后发现的一些问题

    我是一个比较固执的人..在进行android基础教程一书的初步学习之后,说实话,这本书虽然说为了照顾有需要的童鞋,提供了所有的源代码,就连我也在亲自打了好久的代码之后最后决定放弃,也偷偷懒,进行简单无 ...

  7. Android基础总结+SQlite数据库【申明:来源于网络】

    Android基础总结+SQlite数据库[申明:来源于网络] 基础总结篇之一:Activity生命周期:http://blog.csdn.net/liuhe688/article/details/6 ...

  8. Android基础教程pdf

    下载地址:网盘下载 内容简介  · · · · · · <Android基础教程>内容完整丰富,具有较强的通用性,读者都能通过<Android基础教程>快速学习Android开 ...

  9. Android基础_数据存储

    2019独角兽企业重金招聘Python工程师标准>>> Android基础_数据存储 Android数据存储的几种形式 继承SQLiteOpenHelper public class ...

最新文章

  1. 常用的数据结构-队列
  2. MongoDB修改删除数据
  3. Cllimbing Stairs [LeetCode 70]
  4. python开发板比较_再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测
  5. C++之变量的作用域,生存期,可见性
  6. boltdb 学习和实践
  7. OsmocomBB编译及GSM嗅探问题(转)
  8. ASsd固态测试软件数据,128G固态硬盘各项测试数据评测报告
  9. 天猫要做“大”,京东怕不怕?
  10. IT十八掌徐培成第三天笔记
  11. 突发!华为确认53岁高管丁耘骤逝!执掌最大营收业务,东南大学毕业,在职已超26年...
  12. 财富管理技术服务商NewBanker完成千万级美元 Pre-C 轮融资
  13. 智能家居(Domoticz)怎么能少了天气预报
  14. Android API统计
  15. JSRUN, 前端教程大家一起来编写
  16. SONiC+P4实践——P4Runtime下发ACL表项
  17. Python格式化输出 %s %d %f
  18. [解决] 警告: 未来的版本中将会删除 NARGCHK。请改用 NARGINCHK 或 NARGOUTCHK。
  19. 少听大忽悠的AI万能论:不打开四道锁,企业永远无法享用AI
  20. 3D游戏引擎剖析【较全面】

热门文章

  1. 查询数据的排序的位置_简单选择排序C++实现
  2. log4js linux,如何在项目中使用log4.js的方法步骤
  3. JZOJ__Day 2:【NOIP普及模拟】和谐数
  4. BZOJ 3119 Book (贪心+数学推导)
  5. linux 文件io实例代码,linux 文件IO(示例代码)
  6. mysql关联查询去重_MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)...
  7. oracle 跨服务器推送视图_oracle跨数据库视图
  8. qt udp多线程收发过程_! udp多线程的有关问题
  9. python小结教学_python教学
  10. 标识位:可以用以确定鼠标点击的是哪一个按钮或者是文本框