Android 主要活動文件

主要活動代碼在MainActivity.java的Java文件中。這是實際的應用程序文件,將被轉化爲Dalvik可執行文件並運行。下面是由應用嚮導爲Hello World應用生成的默認代碼 -java

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);//建立內容視圖
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
   }
}

這裏,R.layout.activity_main引用自res/layout目錄下的activity_main.xml文件。onCreate()是活動被加載以後衆多被調用的方法之一。android


Manifest文件

不管你開發什麼組件用做應用程序中的一部分,都須要在應用程序項目根目錄下的manifest.xml文件中聲明全部的組件。這個文件是Android操做系統與你的應用程序之間的接口,所以,若是沒有在這個文件中聲明你的組件,將沒法被操做系統所識別。舉個例子,一個默認的清單文件看起來以下:app

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.helloworld"
   android:versionCode="1"
   android:versionName="1.0" >

   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="22" />

   <application
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >

       <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main" >

          <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>

       </activity>

   </application>
</manifest>

這裏,...標籤之間是應用程序相關的組件。andnroid:icon屬性指出位於res/drawable-hdpi下面的應用程序圖標。這個應用使用drawable文件夾下名爲ic_launcher.png的圖片。ide

標籤用於指定一個活動,android:name屬性指定一個Activity類子類的全名。android:label屬性指定用於活動名稱的字符串。可使用標籤來指定多個活動。工具

意圖過濾器的action被命名爲android.intent.action.MAIN,代表這個活動被用作應用程序的入口。意圖過濾器的category被命名爲android.intent.category.LAUNCHER,代表應用程序能夠經過設備啓動器的圖標來啓動。佈局

@string指的是strings.xml(將在後面介紹)。所以,@string/app_name指的是定義在strings.xml中的app_name,實際爲"Hello World"。相似的,應用中的其餘字符串也很流行。spa

下面是你的清單文件中將用到的標籤,用於指定不一樣的Android應用程序組件:操作系統

  • 活動元素
  • 服務元素
  • 廣播接收器元素
  • 內容提供者元素

Strings 文件

strings.xml文件在res/value文件夾下,它包含應用程序使用到的全部文本。例如,按鈕、標籤的名稱,默認文本,以及其餘類似的strings。這個文件爲他們的文本內容負責。一個默認的strings文件看起來以下:xml

<resources>
   <string name="app_name">HelloWorld</string>
   <string name="hello_world">Hello world!</string>
   <string name="menu_settings">Settings</string>
   <string name="title_activity_main">MainActivity</string>
</resources>

R 文件

gen/com.example.helloworld/R.java文件是活動的Java文件,如MainActivity.java的和資源如strings.xml之間的膠水。這是一個自動生成的文件,不要修改R.java文件的內容。下面是一個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.example.helloworld;

public final class R {
   public static final class attr {
   }

   public static final class dimen {
      public static final int padding_large=0x7f040002;
      public static final int padding_medium=0x7f040001;
      public static final int padding_small=0x7f040000;
   }

   public static final class drawable {
      public static final int ic_action_search=0x7f020000;
      public static final int ic_launcher=0x7f020001;
   }

   public static final class id {
      public static final int menu_settings=0x7f080000;
   }

   public static final class layout {
      public static final int activity_main=0x7f030000;
   }

   public static final class menu {
      public static final int activity_main=0x7f070000;
   }

   public static final class string {
      public static final int app_name=0x7f050000;
      public static final int hello_world=0x7f050001;
      public static final int menu_settings=0x7f050002;
      public static final int title_activity_main=0x7f050003;
   }

   public static final class style {
      public static final int AppTheme=0x7f060000;
   }
}

Layout 文件

activity_main.xml是一個在res/layout目錄下的layout文件。當應用程序構建它的界面時被引用。你將很是頻繁的修改這個文件來改變應用程序的佈局。在"Hello World"應用程序中,這個文件具備默認的佈局,內容以下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:padding="@dimen/padding_medium"
      android:text="@string/hello_world"
      tools:context=".MainActivity" />

</RelativeLayout>

這是一個簡單的RelativeLayout的示例,更多內容會在獨立的章節中講解。TextView是一個Android的控件用於構建用戶圖形界面。它包含有許多不一樣的屬性,諸如android:layout_width, android:layout_height等用來設置它的寬度和高度等。@string指的是res/values文件夾下的strings.xml文件。所以,@string/hello_world指的是定義在strings.xml中的名爲hello的字符串:"Hello World!"。

運行應用程序

讓咱們嘗試運行剛剛創建的Hello World!應用程序。假設在搭建環境時你已經建立好了AVD。從Eclipse運行應用,打開你項目中的一個活動文件,而且點擊工具欄上的圖片圖標。Eclipse在AVD上安裝應用,並啓動它。若是一切順利,將顯示以下的模擬器窗口 -

圖片

相關文章
相關標籤/搜索