使用Intent傳遞資料

2021-07-11 09:43:49 字數 1602 閱讀 6239

我們先重點講解如何使用intent在多個activity之間傳遞資料,根據前面的介紹我們應該已經清楚,要從activity1傳遞資料到activity2重點是startactivity()和startactivityforresult()兩個方法。

1.無引數activity跳轉

intent it = new intent(activity1.this, activity2.class);

startactivity(it); 

方法1 實現從activity1直接切換到activity2.其中  activity1和activity2為視窗1和視窗2的類名,注意:這兩個activity一定要在androidmanifest.xml中註冊了才能開啟。

2.向下乙個activity傳遞資料(使用bundle和intent.putextras)

intent it = new intent(activity1.this, activity2.class);

bundle bundle=new bundle();

bundle.putstring("name", "this is from mainactivity!");

it.putextras("bd",bundle);       // it.putextra(「test」, "shuju」);

startactivity(it);            // startactivityforresult(it,request_code);

方法2和方法1類似,但是實現了資料傳遞,注意bundle物件類似於hashtable,可以存放乙個鍵和對應的物件。而intent物件也可以以鍵值對的方式存放bundle物件,從而實現在activity1和

acitivty2之間傳遞資料。在activity2中可以通過以下方法獲得activity1中傳遞過來的資料

intent intent = getintent();

bundle bd = intent.getbundleextra("bd");// 根據bundle的key得到對應的物件

string name=bd.getstring("name");

3.在activity2中向上乙個activity返回結果(使用setresult,針對startactivityforresult(it,request_code)啟動的activity)

intent intent=getintent();      

bundle bundle2=new bundle();       

bundle2.putstring("name", "this is from showmsg!");      

intent.putextras(bundle2);       

setresult(result_ok, intent);

4.activity1中如果要根據activity2中傳入的引數進行處理,必須在activity1中的onactivityresult進行處理

@override   

protected void onactivityresult(int requestcode, int resultcode, intent data)     

}  }

Intent 傳遞資料

intent 可傳遞的資料型別 可傳輸的資料型別 a.基本資料型別 陣列 b.string 陣列 c.bundle map d.serializable bean e.parcelable 放在記憶體乙個共享空間裡 基本型別 intent intent new intent this,otherac...

android 使用Intent傳遞資料之靜態變數

我們一般傳遞資料是用intent的,這個也是官方的推薦的,但intent不能傳遞那些不能系列化的物件。為了解決這個問題,我們可以用靜態變數來傳遞資料。在目標activity中宣告靜態變數,但必須是public修飾的。public class otheractivity extends activit...

使用Intent 傳遞物件

intent 的用法相信你已經比較熟悉了,我們可以借助它來啟動活動 傳送廣播 啟動服務等。在進行上述操作的時候,我們還可以在intent 中新增一些附加資料,以達到傳值的效果,比如在firstactivity 中新增如下 intent intent new intent firstactivity....