Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
2017-08-01 14:47
369 查看
原文链接:Hello, Android Multiscreen Quickstart.
译文链接:Hello,Android Multiscreen快速上手
本部分介绍利用Xamarin.Android处理导航
下面开始练习。
Hello,Android Quickstart指南地址:原文,译文;
Hello,Android Quickstart示例下载地址:英文原始示例,译者自建使用示例。
1.在Visual Studio中打开 Phoneword 应用项目
2.编辑交互界面。在解决方案中打开Main.axml文件:
3.在 工具箱 中拖动一个 按钮-Button 到设计界面,并将其放置在 拨打-Call 按钮下方:
4.在 属性 面板中,修改按钮的 Id 属性值为
5.然后将按钮的 Text 属性值设为
6.在解决方案管理器中,展开Resources文件夹下的value节点,然后双击字符串资源文件——Strings.xml:
7.在Strings.xml文件中添加名为
这样Android设计器中,Call History 按钮的文本会更新显示为新设的字符串:
8.在界面选中 Call History 按钮,然后再 属性 面板中找到
9.现在,为应用添加第二个Activity来为第二个界面提供服务。首先,在解决方案管理器中,右击Phoneword项目,选择
添加-新建项 :
10.在 新建项 对话框中,选择 Visual C#-Activity,并将Activity文件名设为CallHistoryActivity.cs:
11.用以下的代码替换CallHistoryActivity.cs中的模板代码:
在此类中,我们创建了
官方文档此处链接指向错误,此处调整
12.在我们的应用中,我们将收集用户在第一个屏幕中拨打的电话号码,然后将其传递到第二个屏幕。其中,我们将电话号码通过字符串列表存储。要使用列表,我们需要在
接下来,我们创建空列表——用于存储电话号码。
13.下面,我们将 Call History 按钮与代码连接上。在
14.现在,我们扩展 Call 按钮的功能,使得其能够将电话号码添加到列表中,并在用户拨打新号码后启用 Call History按钮。修改弹出确认框中的Neutral Button的反应操作代码:
保存并生成应用——确保没有错误。
15.将应用部署到模拟器或设备上。下图为Phoneword运行的演示图片:
至此,第一个Xamarin.Android多屏幕应用程序创建完成。下面将对此进行深入介绍理解:原文:Hello, Android Multiscreen Deep Dive
译:奇葩史
译文链接:Hello,Android Multiscreen快速上手
本部分介绍利用Xamarin.Android处理导航
Hello, Android Multiscreen Quickstart
在指南的第一部分,我们将为Phoneword添加第二个屏幕 —— 关于电话历史的跟踪情况。最终的应用会有第二个屏幕来展示拨打历史。最终界面如下:下面开始练习。
系统及环境要求
由于本教程将在Hello,Android Quickstart基础上进行操作,你需要完成Hello,Android Quickstart部分内容。如果你想跳过上述步骤,直接进行本文内容,你可以下载现有的Phoneword代码进行演练,相关链接地址如下:Hello,Android Quickstart指南地址:原文,译文;
Hello,Android Quickstart示例下载地址:英文原始示例,译者自建使用示例。
操作演练
在演练中,我们会为 Phoneword 应用添加Call History界面。1.在Visual Studio中打开 Phoneword 应用项目
2.编辑交互界面。在解决方案中打开Main.axml文件:
3.在 工具箱 中拖动一个 按钮-Button 到设计界面,并将其放置在 拨打-Call 按钮下方:
4.在 属性 面板中,修改按钮的 Id 属性值为
@+id/CallHistoryButton:
5.然后将按钮的 Text 属性值设为
@string/callHistory。Android设计器会按照字面上的解释显示。不过我们会进行一些修改来让按钮的文本正确显示:
6.在解决方案管理器中,展开Resources文件夹下的value节点,然后双击字符串资源文件——Strings.xml:
7.在Strings.xml文件中添加名为
callHistory的字符串,并为其设值,然后保存,代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="callHistory">Call History</string> </resources>
这样Android设计器中,Call History 按钮的文本会更新显示为新设的字符串:
8.在界面选中 Call History 按钮,然后再 属性 面板中找到
enabled设置,并将其设置为
false将按钮禁用。此操作会导致按钮在设计界面中显示为暗色:
9.现在,为应用添加第二个Activity来为第二个界面提供服务。首先,在解决方案管理器中,右击Phoneword项目,选择
添加-新建项 :
10.在 新建项 对话框中,选择 Visual C#-Activity,并将Activity文件名设为CallHistoryActivity.cs:
11.用以下的代码替换CallHistoryActivity.cs中的模板代码:
using System; using System.Collections.Generic; using Android.App; using Android.OS; using Android.Widget; namespace Phoneword { [Activity(Label = "@string/callHistory")] public class CallHistoryActivity : ListActivity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Create your application here var phoneNumbers = Intent.Extras.GetStringArrayList("phone_numbers") ?? new string[0]; this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers); } } }
在此类中,我们创建了
ListActivity,然后用代码编辑它,故此处我们无需为其创建新的布局文件。我们会在原文:Hello, Android Multiscreen Deep Dive中详细讨论。——
官方文档此处链接指向错误,此处调整
12.在我们的应用中,我们将收集用户在第一个屏幕中拨打的电话号码,然后将其传递到第二个屏幕。其中,我们将电话号码通过字符串列表存储。要使用列表,我们需要在
MainActivity类上面添加如下引用:
using System.Collections.Generic;
接下来,我们创建空列表——用于存储电话号码。
MainActivity类代码将类似如下代码:
[Activity(Label = "Phoneword", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { static readonly List<string> phoneNumbers = new List<string>(); ...// OnCreate, etc. }
13.下面,我们将 Call History 按钮与代码连接上。在
MainActivity类中,添加如下注册和链接代码:
Button callHistoryButton = FindViewById<Button> (Resource.Id.CallHistoryButton); callHistoryButton.Click += (sender, e) => { var intent = new Intent(this, typeof(CallHistoryActivity)); intent.PutStringArrayListExtra("phone_numbers", phoneNumbers); StartActivity(intent); };
14.现在,我们扩展 Call 按钮的功能,使得其能够将电话号码添加到列表中,并在用户拨打新号码后启用 Call History按钮。修改弹出确认框中的Neutral Button的反应操作代码:
callDialog.SetNeutralButton("Call", delegate { // add dialed number to list of called numbers. phoneNumbers.Add(translatedNumber); // enable the Call History button callHistoryButton.Enabled = true; // Create intent to dial phone var callIntent = new Intent(Intent.ActionCall); callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber)); StartActivity(callIntent); });
保存并生成应用——确保没有错误。
15.将应用部署到模拟器或设备上。下图为Phoneword运行的演示图片:
至此,第一个Xamarin.Android多屏幕应用程序创建完成。下面将对此进行深入介绍理解:原文:Hello, Android Multiscreen Deep Dive
译:奇葩史
相关文章推荐
- OpenCV4Android+JNI开发快速上手入门
- Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
- 快速上手之 MVC入门实例
- Android 入门开发指南之一 -- Hello,Android例子
- stl helloworld 链表 快速入门
- Android初级教程理论知识(第一章快速入门)
- Android01————快速入门
- RxJava/RxAndroid之快速入门3(转)
- Android Support Annotations :安卓注解快速上手
- Zend Framework 入门(1)—快速上手
- .Net程序员玩转Android系列之三~快速上手
- [转]Android web开发快速入门
- xml--android--SAX快速上手
- Android基础——01快速入门
- Eclipse快速上手Hibernate之入门实例
- Android中操作SQLite数据库快速入门教程
- Android2.2快速入门
- Android_DDMS快速入门
- Android注解使用快速入门
- Android 事件总线OTTO用法快速入门