1. 程式人生 > >Android學習筆記三:用Intent串聯activity

Android學習筆記三:用Intent串聯activity

conda data activity setresult result 意圖 prot 其他 cte

一: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來攜帶數據,返回發起頁。
@Override
protected 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