1. 程式人生 > >Android第一行代碼學習筆記---手動創建活動

Android第一行代碼學習筆記---手動創建活動

重寫 用戶 protected 其他 bsp 1.2 指定 ear category

1.1 手動創建活動

活動是什麽:活動(Activity)是最容易吸引用戶的地方,它是一種可以包含用戶界面的組件,主要用於和用戶進行交互。一個應用程序中可以包含零個或多個活動。

@1.新建一個Android項目,項目名叫作ActivityTest,包名使用默認名com.example.activity.在圖一Add an Activity to Mobile這一步我們勾選Add No Activity,因為我們要手動建立Activity。

技術分享圖一技術分享圖二

@2.右擊com example activitytest包-New-Activity-Empty Activity,活動名命名為FirstActivity,並且不要勾選Generate Layout和Launcher Activity選項(圖二),勾選Generate Layout表示會自動為firstActivity創建一個對應的布局文件,勾選Launcher Activity選項表示會自動將firstActivity設置為當前項目的主活動,Finish完成創建。項目中的任何活動都應該重寫Activity的onCreate()方法。打開firstActivity.java文件可以看到Android Studio自動幫我們完成的代碼。

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

1.2 創建和加載布局

Android程序的設計講究邏輯和視圖分離,最好每一個活動都能對應一個布局,布局就是來顯示界面內容的,右擊APP/src/main/res目---New--Directory,創建一個名為layout的目錄,然後右鍵layout--layout resource file,布局文件名為firstlayout,OK。

技術分享 技術分享

打開layout.xml添加如下代碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/Button1"
android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button1"/> </LinearLayout>

接下來要做的就是在活動中加載這個布局,回到firstActivity,在onCreate()方法加入如下代碼:

public class firstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstlayout);
    }
}

1.3 在AndroidManifest.xml文件中註冊

所有的活動都要在AndroidManifest.xml中進行註冊才能生效,而實際上firstActivity已經在AndroidManifest中註冊過了,打開app/src/main/Android/Manifest.xml文件,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.activityTest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".firstActivity"></activity>
    </application>
</manifest>

活動的註冊聲明要放在<application>標簽內,這裏是通過<activity>標簽來對活動進行註冊的,在<activity>標簽我們使用android:name來指定具體哪一個活動.firstActivity 是的縮寫com.exaple.firstActivity,因為外層的<manifest>標簽已經通過package屬性指定了程序的包名是com.exaple.firstActivity,因此在註冊活動時這一部分就可以省略了。

不過僅僅是註冊了活動,我們的程序還是不能運行的,因為還沒有為程序配置主活動,程序運行時不知道首先啟動哪個活動。配置活動的方法就是在<activity>標簽內部加入<intent-filter>標簽,並在這個標簽內部加入

<action android:name="android.intent.action.MAIN"></action>

<category android:name="android.intent.category.LAUNCHER"></category> 這兩句聲明。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.activityTest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".firstActivity"
            android:lable="this is firstActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"></action>
                <category android:name="android.intent.category.LAUNCHER"></category>
            </intent-filter>
        </activity>
    </application>
</manifest>

這樣的話,firstActivity就成為我們這個程序的主活動了,即點擊桌面應用程序圖標時首先打開的就是這個活動,另外需要註意的,如果你的應用程序中沒有聲明任何一個活動作為主活動,這個程序仍然是可以正常安裝的,只是你無法在啟動器中看到或者打開這個程序。這種程序一般都是作為第三方服務供其他應用在內部進行調用的,如支付寶快捷支付服務。

在界面最頂部是我們在註冊活動時lable指定的內容,標題欄下面就是在布局文件firstlayout中編寫的界面,至此,我們已經手動創建完成了我們的firstActivity。

Android第一行代碼學習筆記---手動創建活動