1. 程式人生 > >Android Studio 手動建立活動(Activity) 第一行程式碼 第二章

Android Studio 手動建立活動(Activity) 第一行程式碼 第二章

活動概念:是一種可以包含使用者介面的元件,主要用於和使用者進行互動

手動建立活動:新建一個Android專案,專案名為ActivityTest,包名使用預設值com.example.activitytest

1.新建Android Studio專案


點選Start a new Android Studioproject


將包名改為ActivityTest,其餘預設,點選Next


預設,點選Next


選擇Add No Activity,點選Finish


專案建立完成

#######################################

2.手動建立活動

點選app->java->com.administrator.activitytest->New->Java Class



輸入類名FirstActivit,點選OK


讓新建的FirstActivity.java類繼承自Activity,並重寫Activity的onCreate()方法


public class FirstActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

onCreate()方法非常簡單,就是呼叫了父類的onCreate()方法

#############################################

3.建立和載入佈局

Android程式的設計講究邏輯和檢視分離, 最好每一個活動都能對應一個佈局,佈局就是用來顯示介面內容的

點選app->res->New->XML->Layout XML File,彈出一個建立佈局檔案的視窗



給佈局檔案命名為first_layout,根元素預設選擇為LinearLayout,點選Finish



上面兩圖為視覺化佈局編輯器,在視窗的左下方有兩個切換卡<Design>和<Text>(左邊是Graphical Layout,右邊是first_layout.xml)

轉到first_layout.xml,新增一個按鈕Button


    <Button
        android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button 1"
        />
在<LinearLayout></LinearLayout>之間新增上述程式碼

Button元素的內部增加了幾個屬性:

android:id:給當前的元素定義一個唯一識別符號,之後可以在程式碼中對這個元素進行操作。

格式:@+id/id_name表示在XML中定義一個id(相關語法:@id/id_name表示在XML中引用資源)
android:layout_width:指定當前元素的寬度,使用match_parent表示讓當前元素和父元素一樣寬

android:layout_height:指定當前元素的高度,使用wrap_content表示當前元素的高度只要能剛好包含裡面的內容就行

android:text:指定元素中顯示的文字內容


重新回到FirstActivity.java類,在onCreate()方法中加入下述程式碼:

public class FirstActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);
    }
}

setContentView()方法來給當前的活動中載入一個佈局

#######################################################33

3.在AndroidManifest檔案中註冊

所有的活動都要在AndroidManifest.xml中進行註冊才能生效

點選app->manifests->AndroidManifest.xml


活動的註冊宣告要放在<application>標籤內,通過<activity>標籤來對活動進行註冊

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.administrator.activitytest">

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

        <activity android:name=".FirstActivity"
            android:label="This is FirstActivity" >
            <intent-filter>
                <action android:name="android.intent.action.main" />
                <action android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

android:name:指定具體註冊註冊哪一個活動 填入的.FirstActivity是com.example.activitytest.FirstAcivity的縮寫

由於最外層的<manifest>標籤中已經通過package屬性指定了程式的包名是com.example.activitytest,因此在註冊活動時這一部分就可以省略,直接使用.FirstActivity就足夠了

android:label:指定活動中標題欄的內容,標題欄是顯示在活動最頂部(也可能無法顯示,親測)

給主活動指定的label不僅會成為標題欄中的內容,還會稱為啟動器(Launcher)中應用程式顯示的名稱

在<activity>標籤的內部加入<intent-filter>標籤,並在這個標籤裡新增<action android:name="android.intent.action.MAIN" />和

<category android:name="android.intent.category.LAUNCHER" />這兩句宣告

note:如果你想讓FirstActivity作為程式的主活動,即點選桌面應用程式圖示時首先開啟的就是這個活動,就一定要加入這兩句宣告

##############################################

注意 注意 注意 重要的地方講三遍 


點選選單欄app->Edit Configurations 


在Target Device選項中,選擇USB device(真機除錯)


但是發現錯誤,Error:Default Activity not found

所以,在上圖Activitcy檔案框中修改如下


點選Run,程式執行成功

手機截圖如下: