通过上一篇文章,大概了解了Android用户界面的设计方式,以及如何通过XML来设计界面。并且完成了一个非常简单的示例。
在上一篇文章中,涉及到了一些资源文件,直观点说,就是res目录下的那些目录和文件,常用的有:
- res/drawable/ 用来存放图片文件
- res/layout/ 用来存放布局定义文件
- res/values/ 用来存放一些变量、参数等文件
这些资源文件都是独立于代码而存在的,那么在代码中又是如何访问到这些资源的呢?
在 Android的代码中,有一个文件比较奇怪,第一次接触到Android代码的人都应该迷惑过,这个文件就是R.java,在R.java的注释部分, 有这样一段话:“AUTO-GENERATE FILE. DO NOT MODIFY”,这个文件是自动生成的,不要修改。
- 这个文件就是Java代码和独立于Java代码的资源文件之间的访问窗口,Java程序可以通过R.java来访问那些资源文件。
- 这个文件是在程序编译过程中由aapt(Android Asset Packaging Tool) 自动生成
- 这个文件中的属性都是public static final的,所以可以直接在Java代码中引用,每个属性都代表一个资源,看起来就像为每个资源都定义了一个ID,然后通过这个ID来访问资源
- 所有的资源文件都被编译进最后生成的二进制包中,这样能够带来很高的性能和效率
按照前面的示例,那么在R.java中会存在像这样一段代码:
public static final class layout {
public static final int main=0x7f030001;
}
这里面的main就是由res/layout/main.xml生成的。
接下来在看一下,如何在Java代码中使用这个R.java,创建一个文件Main.java :
package com.roiding.study;
import android.app.Activity;
import android.os.Bundle;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
注意这其中的R.layout.main,通过setContextView(),被Java程序调用。
这段代码中引入了另外一个非常重要的概念:Activity,到目前为止,已经介绍的另外两个比较重要的概念是ViewGroup和View。如果套用时髦的MVC来理解的话:ViewGroup和View属于View领域的东西,Activity可以理解为Control领域的东西,虽然可以这 么类比着来理解,但是Activity其实做了更多的事情,由它将View和一些数据、操作等结合在一起,完成一个相对完整的行为、活动。所以,任何 View要被显示,必须通过Activity来进行。这样每个Activity都会包含特定的行为,多个Activity互相合作,最终组成一个完整的 Android程序。
在示例的Activity中,有一个onCreate()方法,这个方法会在此Activity被创建的时刻调用。在方法内部,设置此Activity的视图为R.layout.main中定义的视图,也就是res/layout/main.xml中定义的视图 (视图、布局、GUI、UI在这里已经混合使用了,并且他们意义相同,后文统一用View表示)。
Activity所包含的内容很多,会用单独的一篇文章来详细介绍。
说到此处,我们应该知道如何创建一个View,并通过Activity将其显示在屏幕上。接下来事情,就是用户如何和这个Activity交互。
[待续]
December 15th, 2008 at 11:14
和谁一起搞的Studio呀?
March 14th, 2010 at 6:28
Hello! deaeadf interesting deaeadf site!
March 14th, 2010 at 6:29
Very nice site! cheap viagra
March 14th, 2010 at 6:29
Very nice site! [url=http://opxyiea.com/yoyraso/2.html]cheap cialis[/url]
March 14th, 2010 at 6:29
Very nice site! cheap cialis http://opxyiea.com/yoyraso/4.html
March 14th, 2010 at 6:29
Very nice site!
March 16th, 2010 at 10:20
Hello!
cialis ,
March 16th, 2010 at 10:20
Hello!
cheap cialis ,
March 16th, 2010 at 10:21
Hello!
cialis ,
March 17th, 2010 at 9:04
Hello!
cialis ,
March 17th, 2010 at 9:04
Hello!
cheap cialis ,
March 19th, 2010 at 12:13
Hello!
cialis ,
March 19th, 2010 at 12:13
Hello!
buy cialis ,
March 19th, 2010 at 6:51
Hello!
viagra ,
March 19th, 2010 at 6:51
Hello!
tramadol ,
March 19th, 2010 at 6:52
Hello!
xanax ,
June 28th, 2010 at 11:45
http://www.roiding.com is very great. I liked your blog a lot. Thank you.
July 11th, 2010 at 1:40
http://www.roiding.com is great! Health and wealth are some things that must never go unattended The reason why people generally look out for quick payday loans is because the money can be got within a matter of hours sometimes within just an hour What could be sweeter news
July 26th, 2010 at 8:42
YicDtM