我們先重點講解如何使用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....