activity跳轉與傳值,主要是通過intent類,intent的作用是激活元件和附帶資料。
intent可以激活activity,服務,廣播三類元件。
本博文講的是顯示意圖激活activity元件。所謂顯示意圖就是在activity的激活時,顯示指出了需要激活的activity的名字。
一、activity跳轉
方法一
intent intent = new intent(a.this, b.class);
startactivity(intent)
方法二
intent intent = new intent();
intent.setclass(a.this, b.class);
startactivity(intent);
實作從a跳轉到b(a、b均繼承自activity)
二、傳遞資料
activity a 傳遞資料
intent.putextra("name", "xy");
intent.putextra("age", 22);
bundle bundle = new bundle();
bundle.putstring("name", "xy");
bundle.putint("age", 22);
intent.putextras(bundle);
activity b 接收資料
// 擷取參數1
intent intent = this.getintent();
string name = intent.getstringextra("name");
int age = intent.getintextra("age", 22); // 預設值為22
// 擷取參數2
bundle bundle = intent.getextras();
string name2 = bundle.getstring("name");
int age2 = bundle.getint("age", 22);
兩種擷取參數方式均可,并不是和傳參1,2方法一一對應
三、activity傳回值
跳轉後前一個activity已經被destroy了。如若要傳回并顯示資料,就必須将前一個activity再次喚醒,同時調用某個方法來擷取并顯示資料。做法如下
1.從a頁面跳轉到b頁面時不可使用startactivity()方法,而要使用startactivityforresult()方法
2.在a頁面的activity中,需要重寫onactivityresult(int requestcode, int resultcode, intent data)方法
activity a
activity b
四、總結
以上采用的意圖intent均是顯示意圖。