十Activity间的往来与卷动视图元件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android應用程式是以活動(Activity)為啟始的入口,每一個活動都有一個對應的佈局畫面,提供與使用者互動的媒介。 分頁佈局雖然只看到一個頁面的元件,但其他頁面只是看不到,並未真的移到背景去,因此所有頁面的元件仍然在使用系統資源;加上是一個活動,所以活動一直保持在生命循環中的「活躍」狀態。 多活動設計就不同了,不管有幾個活動執行中,同一個時間只能有一個活動處於前景「活躍」狀態,其它活動均自動退居幕後進入「停止」狀態,除了必要保持的資源以外,其餘資源一概讓出,因此將比分頁設計節省寶貴的系統資源,這就是我們願意捨近求遠的主要理由。 要啟動另一個活動,第一件事是這活動必須讓系統看得到,因此必須在應用程式的AndroidManifest.xml檔案中宣告。 另一件事就是這活動必須存在,這意謂著必須有此活動類別定義的程式碼,並在定義中載入它要使用的畫面佈局。 最後要靠「Intent」物件請系統將2個不同的活動連在一起,當然Intent的目的是表明應用程式的意圖,它能做的事相當多,但啟動另一個活動是最常用的。 啟動另一個活動的基本步驟為: 新建一個應用程式專案。 在應用程式的AndroidManifest.xml檔案中加入第2個活動(TargetActivity)宣告,加入後AndroidManifest.xml檔案如code 11-1。 在入口活動(MainActivity)增加一個Button元件,以便讓使用者下達啟動另一活動的指示如code 11-2 。 為第2個活動定義它使用的佈局資源檔如code 11-3 。 建立新的類別檔:右擊專案/New/Class如圖 11-1 。 用Java程式碼定義類別如code 11-4 。 在原活動中啟動另一個活動 StartAnotherActivity Test範例 執行此應用程式,使用者敲下畫面中的「Call Another Activity」按鈕,目標活動將被啟動且顯示「I am TargetActivity」訊息。 範例詳細內容請參考原書如code 11-5。 「活動的類別名稱」只能被自己人看到,即同一個應用程式的其他類別;而「活動名稱」是透過系統對外公佈。 一般除了啟動以外都會傳送一些資料給目標活動處理,甚至將處理結果再回傳給原來的活動。 要讓Intent為我們攜帶資料,可以用Intent物件的「putExtra()」方法將資料存至裝置的共用記憶區,使用此方法時需要2個參數: 此資料的名稱(任意指定) 。 資料內容。 接收資料的活動可以用Intent物件的「gettypeExtra(“資料名稱”)」從共用記憶區取得以資料名稱指定的資料,這裡type表示這位置要放置資料的型式,例如要讀取的是字串資料,必須使用getStringExtra(“資料名稱”);如果要讀取的是整數資料,則必須使用getIntExtra(“資料名稱”)。 如果希望能從目標活動獲得回傳資料,則必須用活動的「startActivityForResult()」方法啟動另一個活動,這方法需要提供Intent物件與一個整數識別碼,將來就是用此識別碼確認資料是由正確的目標活動所回傳。而且在呼叫的類別還必須實作onActivityResult(int requestCode,int resultCode, Intent data)方法,在這個方法內一樣用Intent物件的gettypeExtra(“資料名稱”)讀取資料,但讀取前一般會先判斷識別碼是否與啟動設定的相符,以及判斷此回傳資料是否正確。 在目標資料設定以Intent物件的putExtra()方法回傳資料給呼叫活動時,不是用啟動活動的方法(startActive或startActiveForResult)而是用活動的「setResult()」方法,這方法將呼叫原活動的onActivityResult()方法,且需要提供一個回傳常數與Intent物件。回傳常數RESULT_OK,表示回傳資料正確;而回傳常數RESULT_CANCELLED,表示可以忽略回傳的資料。 InterestCount Test範例 說明在活動間互傳資料的做法。 範例入口活動提供2個EdieText元件,一個輸入姓名(預設值為「Abc」),另一個輸入存款金額(預設值為「10000」) 當使用按下「計算利息」鈕,會將姓名及存款金額送至目標活動計算利息,並以一個TextView元件顯示目標活動完成計算後回傳的利息。 在目標活動(TargetActivity),將收到的姓名與存款金額顯示於TextView元件上,並以0.1的利率計算利息,當按下「回傳」鈕會將利息回傳給原呼叫的活動。 範例詳細內容請參考原書 code11-8。 除了用Intent物件的方法直接將資料寫到共用記憶區以外,也可以先將資

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档