在桌面开发中,窗体界面是最重要的开发方向之一。用户接触的都是人机交互窗体界面。在Android的开发中,窗体界面当然也是最主要的开发方向之一。而Android的窗体和桌面窗体开发有很大的区别。.Net中的C#是现在最流行的编程语言之一,现在主要介绍Android窗体和C#WinForm开发的异同。
1>C# WiForm
C#中 WinForm主要有两部分组成,1是窗体文件,2是代码文件。在窗体问中主要是存储的窗体中各个成员的默认属性,例如大小,颜色,位置等,在代码文件中当然存储的是各个成员的处理事件,方法等。
上面的C#Winform “Form1”, 就是一个名为”Form1”的Form类的子类,类文件被分为两个部分,分别是 “Form1.cs”中的”public partial class Form1 : Form ….” 和 “Form1.Designer.cs”中的”partial class Form1 ……”,这两部分和在一块,才是一个完成的C#WinForm类。
2> Android 窗体的组成。
在Android开发中,它的窗体也是有2部分组成,不过和C#不同的是,它的窗体是完全独立的两个部分,分别是一个 Activity的子类,和xml文件(叫做LayOut布局文件)。Activity存储的就是这个窗体各个成员的处理事件,方法等,对应C#中的Form1.cs,XML文件存储的就是窗体中各个成员的布局,默认属性等,对应C#中的Form1.Design。因为是完全独立的两个部分,他们的名字当然是可以完全不相关的命名方式。
在C#中Form1就是一个窗体的组合,直接调用就可以啦。
Android中就不能这样。一个窗体的组合,必须是Activity + xml 才算完整。在Activity中有onCreate()方法,在里面指定一个xml文件,在算组成了一个完整的窗体。
(Activity中的onCreate方法)
(main布局文件的界面)
(main布局文件的代码)
就是把当前的Activity和”main”layout布局文件组合起来,组成了一个完整的窗体。就是在main布局文件中设定好各个成员控件的位置,属性等,在当前的Activity就可以处理他们的事件方法等。
3>主界面(或程序默认的第一个界面)
在C#开发中,Program.cs中指定了当前程序的主界面。
在Andorid开发中,存在一个AndroidManifest.xml文件,其中包含所有的”activity”类(相当于C#中的窗体类)的列表,其中主界面的要包含<intent-filter>成员。把要作为主界面的”activity”中加入<intent-filter>成员设置就可以啦,等同于C#的Program.cs中的”Application.Run(主界面窗体)”。如下图显示
3>多窗体
在C#中,如果一个程序包含多个窗体,不用什么特殊的设置,只要多创建一个From类就可以啦。
在Andorid中,也是多创建几个Activity类,不过要在AndroidManifest.xml中吧所有要显示的Activity都要列出来,否则要报错。如下图所示
4>跳转到另一个窗体。
在C#中要跳转的另一个窗体的代码非常简单,就是新建一个窗体,并显示就可以啦。
在Andorid中要稍微麻烦一些,要用到”Intent”的用法(包含的按钮单击事件到下章再介绍),如下
myHello.this就是当前的窗体,OtherActivity.class就表示要跳转到的窗体。
5>跳转窗体时的传参
在C#中传参可以用属性的方式传参(本教程就不多讲C#的一些写法啦,只举例其中一种),并在跳转时调用,参数的类型只要是C#支持的类型就可以。
在Android中,传参方式如下:
上面的代码中共有3个参数 1。”textintent”, 值是”123456”,2。”one”,值是一个变量”factorOneStr”,3。”two”,值是一个变量”factorTwoStr”.
6>窗体传参时的接收
在C#中也很简单,直接调用就可以啦。代码示例如下:
在Andorid中,先要提取,才能调用。代码示例如下: