天天看點

《Android平闆電腦開發秘籍》——3.5節技巧:點選應用程式圖示後跳轉至應用程式首頁

本節書摘來自異步社群《android平闆電腦開發秘籍》一書中的第3章,第3.5節技巧:點選應用程式圖示後跳轉至應用程式首頁,作者 【印度】b.m. harwani,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

3.5 技巧:點選應用程式圖示後跳轉至應用程式首頁

android平闆電腦開發秘籍

如果使用者點選了actionbar内的logo或圖示,将會跳轉至應用程式首頁。應用程式首頁的意思是應用程式的主activity,即activity棧的根成員。

預設情況下,顯示在actionbar中的logo或圖示是不能被點選的。為了讓logo或圖示能被點選,必須調用actionbar的sethomebuttonenabled()方法,并把boolean值true傳入,如下所示:

點選logo或圖示意味着點選了一個菜單項,将由activity的事件處理方法(handler)onoptionsitemselected來處理。當點選logo或圖示時,将被視作點選了id為android. ``r.id.home的菜單項。換句話說,當點選logo或者圖示時,将會調用onoptionitemselected()方法,android.r.id.home将作為參數被傳入。假設目前activity是createactivity,點選圖示後要跳轉的主activity或根activity為actionitemsappactivity,代碼清單3-3給出了代碼。

代碼清單3-3 寫入activity檔案createactivity.java的代碼

上述代碼假定名為create.xml的layout檔案已存在于res/layout檔案夾中。為了能跳轉到主activity,使用了一個名為flag_activity_clear_top的intent标記,用以關閉所有在主activity之後啟動的activity。在上述代碼中可以看到,通過調用getactionbar()方法獲得了actionbar對象actionbar,boolean值true被傳入了sethomebuttonenabled()方法,這使得應用程式的logo可被點選了。點選應用程式的logo,将會在id為android.r.id.home的菜單項上生成一個點選事件。在事件處理方法onoptionsitemselected()中,将檢查id為android.r.id.home的菜單項是否被點選了,也即應用程式的logo是否被點選。如果是應用程式logo被點選了,将會跳轉至應用程式的主activity actionitemsappactivity.class中,跳轉操作是通過清除棧頂所有其他activity(如果存在的話)來實作的。

在android 4.1以上的版本中,上述代碼中語句#1代表的onoptionsitemselected方法可以整個去掉。也就是說,隻要在androidmanifest.xml檔案中加入以下語句,就可以跳轉至主activity中了:

繼續閱讀