(转)C#2Android

偶然发现了博客园里的一篇文章,c#和android的差别,原文在这里http://www.cnblogs.com/cangfriend/archive/2011/04/27/2031036.html

特别转来这里看看

在桌面开发中,窗体界面是最重要的开发方向之一。用户接触的都是人机交互窗体界面。在Android的开发中,窗体界面当然也是最主要的开发方向之一。而Android的窗体和桌面窗体开发有很大的区别。.Net中的C#是现在最流行的编程语言之一,现在主要介绍Android窗体和C#WinForm开发的异同。

1>C# WiForm

C#中 WinForm主要有两部分组成,1是窗体文件,2是代码文件。在窗体问中主要是存储的窗体中各个成员的默认属性,例如大小,颜色,位置等,在代码文件中当然存储的是各个成员的处理事件,方法等。

clip_image002clip_image004

clip_image006

上面的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文件,在算组成了一个完整的窗体。

clip_image008

(Activity中的onCreate方法)

clip_image010

(main布局文件的界面)

clip_image012

(main布局文件的代码)

就是把当前的Activity和”main”layout布局文件组合起来,组成了一个完整的窗体。就是在main布局文件中设定好各个成员控件的位置,属性等,在当前的Activity就可以处理他们的事件方法等。

3>主界面(或程序默认的第一个界面)

在C#开发中,Program.cs中指定了当前程序的主界面。

clip_image014

在Andorid开发中,存在一个AndroidManifest.xml文件,其中包含所有的”activity”类(相当于C#中的窗体类)的列表,其中主界面的要包含<intent-filter>成员。把要作为主界面的”activity”中加入<intent-filter>成员设置就可以啦,等同于C#的Program.cs中的”Application.Run(主界面窗体)”。如下图显示

clip_image016

3>多窗体

在C#中,如果一个程序包含多个窗体,不用什么特殊的设置,只要多创建一个From类就可以啦。

在Andorid中,也是多创建几个Activity类,不过要在AndroidManifest.xml中吧所有要显示的Activity都要列出来,否则要报错。如下图所示

clip_image018

4>跳转到另一个窗体。

在C#中要跳转的另一个窗体的代码非常简单,就是新建一个窗体,并显示就可以啦。

clip_image020

在Andorid中要稍微麻烦一些,要用到”Intent”的用法(包含的按钮单击事件到下章再介绍),如下

clip_image022

myHello.this就是当前的窗体,OtherActivity.class就表示要跳转到的窗体。

5>跳转窗体时的传参

在C#中传参可以用属性的方式传参(本教程就不多讲C#的一些写法啦,只举例其中一种),并在跳转时调用,参数的类型只要是C#支持的类型就可以。

clip_image024clip_image026

在Android中,传参方式如下:

clip_image028

上面的代码中共有3个参数 1。”textintent”, 值是”123456”,2。”one”,值是一个变量”factorOneStr”,3。”two”,值是一个变量”factorTwoStr”.

6>窗体传参时的接收

在C#中也很简单,直接调用就可以啦。代码示例如下:

clip_image030

在Andorid中,先要提取,才能调用。代码示例如下:

clip_image032

原文地址:https://www.cnblogs.com/dagon007/p/2038919.html