標籤:rri 建立 for 返回 bsp class first super extra
一:Intent
Intent可以理解為 意圖。
我們可以通過建立intent執行個體來定義一個跳轉意圖,意圖包括:要跳轉到哪個頁面、需要傳遞什麼資料。
然後通過startActivity(intent)來啟動跳轉。
有兩種方式定義Intent:顯式Intent、隱式Intent。
二:顯式Intent
1)我們可以在actvity的java檔案中,通過代碼顯示定義Intent,參數為:從哪個頁面,跳轉到哪個頁面。
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivity(intent);
2) 我們還可以通過putExtra(key,value)的方法,往intent傳入資料,攜帶到跳轉到目標頁。
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);intent.putExtra(name, data);startActivity(intent);
在跳轉目標頁到java檔案中,通過getIntent()提取連結到該activyty的intent執行個體,然後通過intent執行個體.getXXExtra(name)提取資料,XX是資料類型。
3)我們也可以在跳轉寄起頁擷取到跳轉目標頁回傳到資料
跳轉寄起頁:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivityForResult(intent, 1);//第一個參數是intent,第二個是請求碼//重寫結果回傳函數,監聽結果碼以及回傳的intent//第一個參數:請求碼:用於校正是否該頁面發起的跳轉請求的回傳結果//第二個參數:結果碼:回傳的結果碼類型//第三個參數:Intent執行個體:跳轉目標頁通過一個intent來攜帶資料,返回傳起頁。@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) {//根據請求碼來匹配是哪個跳轉請求的回傳結果 case 1: if(resultCode == RESULT_OK) {//根據結果碼,執行不同結果碼對應的操作 String name = "return_data"; String returnData = data.getStringExtra(name);//通過回傳的intent提取資料 ......//使用資料:賦值給變數、調用其他函數、賦值給視圖控制項等 } break; default: }}
跳轉目標頁:
Intent intent1 = new Intent();//建立回傳的intent執行個體intent1.putExtra(name, data);//攜帶資料setResult(RESULT_OK, intent1);//作為結果進行回傳
Android學習筆記三:用Intent串聯activity