一, 概述:Activity作為公用類,繼承自ContextThemeWrapper.
Activity專註於使用者所要做的事情。幾乎所有的Activity都是和使用者進行互動的。因此,Activity通過使用setContentView(view)來展示介面元素。儘管Activities通常是全螢幕顯示視窗的,但是你可以指定下面兩種方法的一種來進行顯示:
浮動表單:android:theme="?android:attr/windowIsFloating"嵌入到其他的Activity中。
二,startActivity(Intent)和startActivityForResult(Intent,int)的區別使用:
startActivity(Intent) 用來啟動一個新的 activity ,這個 activity 將被放置在 activity 棧的棧頂。這個方法只有一個參數 Intent ,這個參數描述了將被執行的 activity
有時候你希望在一個 activity 結束時得到它返回的結果。舉個例子,你可能啟動一個 activity 來讓使用者從通訊錄中選擇一個人;當它結束的時候將會返回這個所選擇的人。為了得到這個返回的資訊,你可以使用 startSubActivity(Intent, int) 這個方法來啟動新的 activity ,第二個整形參數將會作為這次調用的識別標記。這個 activity 返回的結果你可以通過 onActivityResult(int,
int, String, Bundle) 方法來獲得,此方法的第一個參數就是之前調用所使用的識別標記。當 activity 退出的時候,它可以調用 setResult(int) 來將資料返回給他的父進程。這個方法必須提供一個結果碼,這個結果碼可以使標準結果 RESULT_CANCELED, RESULT_OK ,也可以是其他任何從 RESULT_FIRST_USER 開始的自訂值。此外,它還可以返回一段字串(經常是一段資料的 URL 地址),一個包含它所有希望值的 Bundle 。這些資訊都會在父 activity
的回呼函數 Activity.onActivityResult() 中出現,並連同最初提供的識別標記一起(此處有些拗口,意思其實就是子activity 返回的內容、返回碼、識別標記都將作為參數,按照不同的返回情況來調用父activity 的Activity.onActivityResult() 方法,以實現出現各種返回時父activity 做出響應的處理)。
三,執行個體
MainActivity:
Intent intent = new Intent(MainActivity.this, Bookmarks.class); //必須在這個地方定義 不能在上面定義 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intent,0);
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { //跳轉前 A 設定值 傳回值 傳遞的值 super.onActivityResult(requestCode, resultCode, data); if(data != null) { String str=data.getStringExtra("sec_bookmark_url").toString(); mWebView.loadUrl(str) } else Toast.makeText(MainActivity.this,"結果********$$$", Toast.LENGTH_SHORT).show(); }
Bookmark.java
String aaa=(String) users.get(arg2).get("bookmark_url"); //擷取 Intent intent = new Intent(); // intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//重新整理 intent.putExtra("sec_bookmark_url", aaa);//加上自訂的參數 setResult(RESULT_OK, intent); Bookmarks.this.finish();
這種方法可行,但是如果Bookmark 只是tabactivity中的一個選項卡,MainActivity跳轉到選項卡中,而由選項卡中某一個選項來終結,該如何處理?
思考中……