本文實例講述了Android創建一個Activity的方法。分享給大家供大家參考,具體如下:
為了創建一個新的Activity,你需要繼承Activity類,定義UI,實現功能。新的Activity的最基本的框架代碼如下所示:
package com.paad.myapplication;import android.app.Activity;import android.os.Bundle;public class MyActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);}}基本的Activity類代表一個空的屏幕,它沒有什么大用,所以,首要的事情就是你用Views和layouts來填充UI。
Activity的UI都是由Views來創建的。Views是UI控件,顯示數據和提供用戶交互。Android提供了一些layout類,稱作View Groups,它可以容納多個View來幫助你設計復雜的UI。
前面講述了View和View Groups,涉及使用以及創建自定義的Views和layouts。
為Activity指定UI,請在Activity的onCreate方法中調用setContentView方法。
在這個代碼片段里,使用了MyView的簡單實例來作為Activity的UI:
@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);MyView myView = new MyView(this);setContentView(myView);}多數情況下,你都想使用較為復雜的UI設計。你可以在代碼里使用View Groups來創建布局,或者你可以利用標準Android的便利傳遞一個外部已經定義的layout的資源ID,如下面的代碼片段所示:
@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);setContentView(R.layout.main);}為了能在應用程序中使用一個Activity,你需要在manifest中注冊它。在application節點添加一個新的activity標簽;activity里包含label、icon、permissions和themes等元數據。沒有相應的activity標簽的Activity不能被啟動。
接下來的XML片段顯示了如何為我剛創建的MyActivity類添加一個節點:
<activity android:label="@string/app_name"android:name=".MyActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
在activity標簽里,你可以增加intent-filter節點來指明你的Activity監聽和響應哪種意圖。每個Intent Filter可以定義一個或多個action和categories。Intent和Intent Filter會在第5章詳細描述,但是它對一個作為主要啟動程序的Activity沒有什么價值。它必須包含一個Intent Filter來監聽MAIN動作和LAUNCHER種類,如下面高亮度的代碼片段所示:
<activity android:label="@string/app_name"android:name=".MyActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android編程之activity操作技巧總結》、《Android通信方式總結》、《Android調試技巧與常見問題解決方法匯總》、《Android開發入門與進階教程》、《Android基本組件用法總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答