這兩天學了點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。
以上是我在學習兩天以後小小的總結,肯定有很多不足之處。朋友們可以多多給意見!!!