咨询热线:15198394869 联系人:李德泉 地址:龙岩工业园区
.NET跨平台开发之Xamarin.Android介绍与生命周期【2】
来源:亚美最新官方网址 发布时间:2019-11-29 点击量:5
前言
不同于IOS,Xamarin在Visual Studio中针对Android,可以很直接的去设计使用者界面,在本系列中,子浩会针对Android目录结构以及基本控制项进行介绍,包括TextView,EditView,Toggle/Switch、Seekbar控制项,还有一些配置进行讲解。
Android目录结构
在Visual Studio建立Android应用程序后,在方案中可以看到一下目录结构:
其中的文件,我们Yi Yi 进行讲解。
Assets:放置在该文件夹中,将会一起被封装到Android的封装文档中,构建动作设定为AndroidAsset。如下通过陈述式来存取Assets的资源。
var tv = new TextView (this); // Read the contents of our asset string content; using (StreamReader sr = new StreamReader (Assets.Open ("read_asset.txt"))) { content = sr.ReadToEnd (); } // Set TextView.Text to our asset content tv.Text = content; SetContentView (tv);
Assets.Open的第二个参数 是获取内容的方式。
Resources: 包含了Drawable,Layout以及Values文件夹,那其他的文件是为了存放不同解析度的文件,Layout文件是存放使用者界面文档,而Value文件夹则是可以存放不同的类型的Xml,例如styles.xml, colors.xml… 针对Resources底下的文件。
当你打开maincontent.axml,会看到这些XML描述:
<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:showIn="@layout/activity_main"android:minWidth="25px"android:minHeight="25px"></RelativeLayout>
1.其中RelativeLayout是页面框架,相当于Wpf中的stackPanel。
2.@id 告诉Android parser 为对象建立一个id,方面获取。
3.@string/[名称] 在String.xml中建立一个字符串资源,后续提供Resource类别存取。
那@string则对应到了ResourcesValuesString.xml
<resources><string name="app_name">张子浩拨号系统</string><string name="action_settings">Settings</string><string name="translationHistory">Translation History</string><string name="ApplicationName">Phoneword</string><string name="hello">hello writer</string></resources>
那我们的mainContent文件则可以这么写。
<Buttonandroid:text="@string/hello"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/yourbutton" />
双击返回操作
其实这个功能在Xamarin并不难,在activity里面有方法OnKeyDown,我们只要重写一下就ok了,然后通过webView重新加载到要返回的页面即可,当然操作有些死板,但还是有着不错的效果!
DateTime? lastBackKeyDownTime; public override bool OnKeyDown([GeneratedEnum] Keycode keyCode, KeyEvent e) { if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down) { if (!lastBackKeyDownTime.HasValue || DateTime.Now - lastBackKeyDownTime.Value > new TimeSpan(0,0,2)) { Toast.MakeText(this.ApplicationContext,"再按一次退出程序",ToastLength.Short).Show(); lastBackKeyDownTime = DateTime.Now; } else { Finish(); } return true; } return base.OnKeyDown(keyCode, e); }
其效果如下:
生命周期:
该图片来源于网络
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.退出当前Activity时:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
这其实并不难理解,如果不理解的话,你可以使用Log.Debug进行输出,自己观察下吧。
ok,就这样~
相关产品
-
套餐包含的自助早餐在酒店1楼的西餐厅享用:各式面包、中式烤肠、培根、中式煎饺、油条、面条等一应俱全,完全能够满足一家老小的不同口味。
-
此次系列外长会期间,各方通过COC框架协议,就是让南海问题重新回到中国和东盟管控的轨道上来。阮宗泽解释说,管控权的回归包含两层含义,一是如果出现争端,要通过争端方谈判协商来处理;二是中国和东盟共同来维护南海的和平稳定。
-
富豪依然不断涌现,但绝大多数人都不曾向媒体透露过自己到底拥有多少比特币。由于比特币的去向很难追踪,因此谁也不知道谁才是世界上拥有比特币最多的人。但对于大玩家们来说,如果比特币继续涨下去,他们肯定还会再大赚上一笔。
-
对于银行开办人民币保值存款业务的原因,上述业内人士解释,这是因为当年我国出现了明显的通货膨胀,部分省市零售物价指数上涨幅度达到25%以上,涨幅超过了存款利率而形成存款负利率,所以国家推出了利率较高的保值储蓄业务,以解决在高通胀时期居民储蓄存款利率倒挂(即负利率)问题,改变居民通货膨胀预期。
-
低纬度高海拔的亚高原特性和亚热带季风湿润气候赋予六盘水独特的气候资源,冬季冰雪可保持2个月左右,适宜开展高山滑雪运动。近年来,六盘水补齐冬季旅游短板,充分利用自然资源优势,打出高山滑雪度假牌,全力打造冰雪旅游产业。
-
在英格兰队的攻势下,下半场60分钟以后,威尔士的阵型开始脱节,贝尔鲜有拿球的机会,球队难以组织起有效的反击,不能对英格兰队的防线造成威胁,最终导致被逆转。鲁尼本场再次证明了自己的核心地位,他在中场的梳理到位,掌控住了比赛节奏。
-
在汽车电子、网络、信息技术的快速发展下,智能网联汽车已成为汽车技术发展的大势, 新一代技术的发展将引领未来汽车新一轮发展。
-
第一类是手长英雄,在六级前可以将阿卡丽压制的特别惨,但六级之后会比较好打。如杰斯、凯南、兰博、潘森。纳尔、船长等等。出门装建议选择多兰盾。一级学Q,通过远距离Q补兵,在加点上也要选择主Q副E,来提高爆发力。猥琐到6级后,通过双Q爆发来找机会击杀。(先找机会RQAE打一波,然后再找机会双Q击杀)
热点资讯
- MySQL数据库优化小结2019-11-12
- 从苹果德州的扩张看其雄心壮志:向服务高端产品转型——新浪财经网2019-11-13
- 消息称华硕本月将裁员殃及手机和游戏业务2019-11-10
- 校园贷暴力催债视频流出:手持钢管猛踹门,逾期费达一小时500元2019-11-19
- .NET跨平台开发之Xamarin.Android介绍与生命周期【2】2019-11-29
- 突发:AMD美国官网疑似无法访问2019-06-28
- FaceBook高管警告发行商:不合作我将“牵着你们死去的手”2019-06-28
- [每日必领]天猫、京东、苏宁11.11无门槛现金红包/神券2019-11-15