一、Intent實現頁面跳轉
在Android系統中,通過Intent的方式進行頁面間的跳轉是最常見的一種方式。在上一個頁面中創建Intent,並且指定需要跳轉到的Activity。例如:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
這裡的FirstActivity是起點Activity,而SecondActivity是目標Activity。通過這段代碼,FirstActivity跳轉到了SecondActivity。
在SecondActivity中,可以通過getIntent()方法獲取到從FirstActivity傳遞過來的數據。比如,FirstActivity向SecondActivity傳遞一個名稱為「username」的字元串,可以在SecondActivity中這樣實現:
String username = getIntent().getStringExtra("username");
二、Bundle實現跳轉並傳遞數據
在Android應用開發中不僅僅可以通過Intent實現跳轉,還可以通過Bundle來實現數據的傳遞。
在需要傳遞數據的Activity中,創建Bundle對象並將需要傳遞的數據放入其中;在需要獲取數據的Activity中,通過getExtras()方法獲取Bundle對象以及裡面存儲的數據。例如:
// 第一個Activity傳遞數據
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "張三");
bundle.putInt("age", 21);
intent.putExtras(bundle);
startActivity(intent);
// 第二個Activity獲取數據
Bundle bundle = getIntent().getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age");
三、使用startActivityForResult實現頁面跳轉和結果返回
在有些情況下,需要從目標Activity返回結果,比如在拍照或者選擇照片的時候。此時就可以使用startActivityForResult來實現頁面跳轉並且實現回調。比如:
// 發送請求,等待返回數據
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent, 1);
// 處理返回的數據
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == RESULT_OK){
String result = data.getStringExtra("result");
textView.setText(result);
}
}
在目標Activity中,需要在結果處理完之後使用setResult()方法將結果返回給起始Activity。比如:
// 處理數據,將結果返回給發起請求的Activity
Intent intent = new Intent();
intent.putExtra("result", "數據已經處理完畢!");
setResult(RESULT_OK, intent);
finish();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/277870.html