Android學習筆記三:用Intent串聯activity
阿新 • • 發佈:2017-09-13
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來攜帶數據,返回發起頁。 @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