这两天学了点Android,初学有很多不懂和容易犯错的地方,说的不对,请大家给意见,谢谢!
上传了一张图片,先通过这张图片开始讲起。
(1) 这个Android项目中有2个Activity,而每个Activity都需要在AndroidManifest.xml配置文件中进行注册。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.william"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".CalculateActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ResultActivity"
android:label="@string/result">
</activity>
</application>
</manifest>
这个配置文件通过 package="com.william" + android:name=".CalculateActivity" 能找到相应的Activity。
(2) 通常情况下有一个布局配置文件来管理一个Activity类,图中的main.xml来管理CalculateActivity.java类,result.xml配置文件时管理ResultActivity.java类的。
public class CalculateActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
CalculateActivity.java类都要继承Activity,因为在父类Activity中有一个setContentView();方法,那么子类可以通过setContentView(R.layout.main);(R.layout.main后面解释)方法找到main.xml配置文件。
(3) 现在就谈谈gen目录下的R.java类。
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.william;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
public static final int result=0x7f030001;
}
public static final class string {
public static final int app_name=0x7f040001;
}
}
从注释不难看出,此文件时自动生成的,不能修改(在Eclipse中安装了ADT插件,这样就能创建一个Android项目)。
R.java文件是来管理res(图中)目录中每个文件。比如:layout目录下----
public static final class layout {
public static final int main=0x7f030000;
public static final int result=0x7f030001;
}
它管理了main.xml和result.xml配置文件。当然,你在layout目录下再加入一个test.xml配置文件的话,那么会加上一行代码(public static final int test = 0x7f030002)
public static final class layout {
.......
public static final int test = 0x7f030002;
}
所以说这个R.java文件是随着res目录下文件修改而自动修改的,不需要我们手动修改。
(4) values目录下的 strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, CalculateActivity!</string>
<string name="app_name">Calculation</string>
<string name="result">结果</string>
<string name="multiply">乘法</string>
<string name="compute">计算</string>
</resources>
因为我们知道Android开发的时候肯定会考虑到国际化的问题,支持很多国家语音。那么这个配置文件作用就显而易见了,就是利用键-值对的形式来支持国际化。也可以让代码中出现Hand Code。
以上是我在学习两天以后小小的总结,肯定有很多不足之处。朋友们可以多多给意见!!!