天天看點

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

【正文】 

一、如何在一個應用程式當中定義多個activity:

步驟如下:

(1)定義一個類,繼承activity

(2)在該類當中,複寫activity當中的oncreate()方法

(3)在androidmanifest.xml檔案中注冊該activity

詳細解釋如下:

(1)定義一個類,繼承activity:在src檔案夾裡面的包中建立一個class檔案,可命名為:secondactivity.java

(2)在該類當中,複寫activity當中的oncreate()方法:在菜單欄選擇source--->override/implement methods,彈出框,選擇其中的oncreate()方法:

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

注:oncreate()方法是activity運作的入口。

緊接着,在layout檔案夾中,為該activity添加布局檔案:(檔案名必須為小寫)

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

在該布局檔案中添加一個 <textview />

在secondactivity.java中設定該activity所使用的布局檔案,即在oncreate()方法中添加如下代碼:

打開androidmanifest.xml檔案,注意裡面的activity标簽,即以下代碼:

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

代碼解釋如下:

02行:代表activity的名字:包名+類名。

03行:label指定活動中标題欄的内容。

04至08行:activity的子标簽,即:

以上這段代碼放在哪個activity裡,那個activity就作為應用程式預設啟動的activity。即程式運作後的預設啟動的activity。

現在将secondactivity注冊進去,在第一個activity後面,添加如下代碼:

二、android當中的back stack(後退棧):(棧:子彈上膛,先進後出)

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

android作業系統隻顯示back stack中最上面的元素(隻顯示棧頂端的activity)。

在上方的圖中,當使用者點選後退按鈕時,出現以下情況:(最上方的activity将被移除,依此類推)

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

三、啟動一個activity的方法:即在預設啟動的activity中啟動另一個activity

核心代碼如下: 

(1)生成一個意圖對象 intent

(2)調用setclass方法設定所要啟動的activity

(3)調用startactivity方法啟動activity

具體解釋如下:

【執行個體】在第一個activity點選按鈕,來啟動第二個activity;在第二個activity點選按鈕,傳回到第一個activity

(1)生成一個意圖對象 intent (intent封裝了你想做什麼這件事)

在布局檔案activity_main.xml檔案中添加一個button,并在mainactivity.java中生成button的監聽器,

生成意圖對象的代碼如下:

intent intent = new intent() ;

(2)調用setclass方法設定所要啟動的activity:

intent中的setclass方法格式如下:

intent.setclass(packagecontext, cls) ;

參數解釋如下:

第一個參數:這個context對象即目前activity對象。activity是context類的子類,此時activity向上轉型了。

第二個參數:表示意圖啟動的那個activity 。

總而言之,監聽器部分的【核心代碼】如下:

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

核心代碼為第04行至第09行。

【完整代碼】如下:方案一

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

并在清單檔案中注冊secondactivity,添加如下代碼:

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

或者如果不綁定監聽器的話,可以對布局檔案中的button添加如下代碼:android:onclick="gotosecondactivity"

【完整代碼】如下:方案二

Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程
Android元件系列----目前Activity跳轉到另一個Activity的詳細過程

生命周期描述如下:

當使用者點選目前預設的mainactivity中的按鈕後,會跳到secondactivity。生命周期如下:

啟動預設activity時:

mainactivity:oncreate

mainactivity:onstart

mainactivity: onresume

點選按鈕後,跳到secondactivity:(mainactivity被保留至棧底)

mainactivity:onpause

secondactivity:oncreate

secondactivity:onstart

secondactivity: onresume

mainactivity: onstop

按傳回菜單後,回到mainactivity:(secondactivity被銷毀)

secondactivity: onpause

mainactivity:onrestart

secondactivity: onstop

secondactivity: ondestroy

當使用者打開應用程式,之後按home鍵傳回到首頁(或者按電源鍵,效果是一樣的),再回到原來的程式。生命周期描述如下:

按home鍵傳回到首頁:

mainactivity:onstop

再回到原來的程式:

mainactivity:onresume

繼續閱讀