Android第一行代碼學習筆記---手動創建活動
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第一行代碼學習筆記---手動創建活動