Activity之間跳轉與傳值
在Android開發(fā)中,Activity之間的跳轉和數(shù)據(jù)傳遞是非常常見的操作。本文將介紹如何通過Intent類來實現(xiàn)Activity之間的跳轉,并通過Bundle類來進行數(shù)據(jù)傳遞。 一、Activi
在Android開發(fā)中,Activity之間的跳轉和數(shù)據(jù)傳遞是非常常見的操作。本文將介紹如何通過Intent類來實現(xiàn)Activity之間的跳轉,并通過Bundle類來進行數(shù)據(jù)傳遞。
一、Activity跳轉
Activity之間的跳轉可以通過Intent類來實現(xiàn),最常見的跳轉代碼如下:
Intent intent new Intent(, ); startActivity(intent);
也可以使用以下代碼:
Intent intent new Intent(); (, ); startActivity(intent);
二、數(shù)據(jù)傳遞
如果需要在跳轉頁面時傳遞數(shù)據(jù),可以使用Intent的putExtra()方法。如果只需要傳遞少量數(shù)據(jù),可以直接在啟動Intent時添加額外的參數(shù):
Intent intent new Intent(); (, ); intent.putExtra("Name", "ppy2790"); startActivity(intent);
如果需要傳遞大量數(shù)據(jù),可以使用Bundle類來封裝數(shù)據(jù),然后將Bundle對象賦給Intent:
Intent intent new Intent(, ); Bundle bundle new Bundle(); bundle.putString("Name", "ppy2790"); bundle.putBoolean("IsMale", true); intent.putExtras(bundle); startActivity(intent);
三、獲取傳遞的值
在接收數(shù)據(jù)的另一個Activity中,可以通過getIntent().getExtras()方法獲取傳遞過來的Bundle對象,并從中獲取數(shù)據(jù):
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); Bundle bundle ().getExtras(); String name ("Name"); boolean isMale ("IsMale"); }
也可以直接從Intent中獲取數(shù)據(jù):
String name ().getStringExtra("Name");
四、頁面跳轉后返回并保留數(shù)據(jù)
有時候,在頁面跳轉之后,需要返回到之前的頁面,并保留用戶之前輸入的信息。實現(xiàn)這個效果需要以下幾步:
- 從FirstActivity頁面跳轉到SecondActivity頁面時,使用startActivityForResult()方法。
- 在FirstActivity頁面中重寫onActivityResult()方法,獲取來自SecondActivity頁面的數(shù)據(jù)。
- 在SecondActivity頁面上加入返回按鈕,點擊按鈕時設置返回結果并結束當前Activity。
// FirstActivity中重寫onActivityResult()方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ switch(requestCode){ case RESULT_OK: // 取得來自SecondActivity頁面的數(shù)據(jù),并顯示到畫面 Bundle bundle (); String name ("Name"); boolean isMale ("IsMale"); } } // SecondActivity中返回按鈕點擊事件 /*給上一個Activity返回結果*/ (RESULT_OK, intent); /*結束本Activity*/ ();