感覺已經好久都沒有寫部落格了,今天來更新一篇,雖然是很零碎的知識點,但也是好不容易才擠出時間來寫的,僅供參考,大神就不要吐槽了,好了廢話就不多說了
activity之間傳值有很多種,當然看寫**的人比較趨向於哪一種了,無論用那種方式實現的目的只有乙個:多個activity之間實現通訊!下面這篇部落格介紹一下多個activity之間使用intent傳值,intent揹負著信使的榮譽稱號,當然它就要履行這個榮譽稱號的義務了,使用intent傳值有些注意事項,各位在使用的需要注意下。
a-b之間資料傳遞
1)單向傳值
:a傳值給b,但不需要b返回資料
a://傳入資料給b
intent i = new intent(a.this,b.class);
i.putextra("a_b","給b的資料");
startactivity(i);
b://拿到a傳入的資料
string date= getintent().getstringextra("a_b");
2)雙向傳值
:a傳值給b,並且需要b返回資料給a
a://傳入資料給b
intent i = new intent(a.this,b.class);
i.putextra("a_b","給b的資料");
startactivityforresult(i, 0x123);
//接收b返回的資料,重寫onactivityresult方法
@override
public void onactivityresult(int requestcode, int resultcode, intent data) }b:
//接收a傳入的資料
string date= getintent().getstringextra("a_b");
//返回資料給a,在末尾一定要將當前頁面finish
intent intent = new intent();
intent.putextra("b_a","返回給a的資料");
setresult(0x123,intent);
onbackpressed();
b-c,a-c之間的資料單向或者雙向傳遞都跟a-b之間資料傳遞的方法一樣,這裡就不重複寫了,有興趣的同學可以把**寫一遍跑一下,下面說說c跳過b直接傳遞值給a怎麼做。
a->b->c,c->a
在實際應用開發中有很多情況是a->b->c,然後在c中做了某些操作,需要把一些值直接跳過b直接傳遞給a,其實這種傳值方式同樣有很多種,比如發個特定的廣播,迴圈退出已經存在的頁面等等,其實方法有很多種,下面我還是以intent傳值為例
c:intent i = new intent(c.this, a.class);
i.putextra("c_a", "c傳回給a的資料");
//要啟動的activity已經在當前的任務中,那麼在該activity之上的activity都會關閉,並且intent會傳遞給在棧頂的activity
//如果 activity 已經是執行在 task 的 top,則該 activity 將不會再被啟動
i.setflags(intent.flag_activity_clear_top | intent.flag_activity_single_top);
startactivity(i); a:
此時需要在a中重寫onnewintent方法,在該方法中獲取從c中傳遞的值
@override
protected void onnewintent(intent intent)
至於對activity跳轉中flag理解下次有時間再做分享,以上就是今天總結的內容,這些都是常用的知識,除此之外還有很多等著我們去探索,繼續努力!
多個Activity之間傳值
本章將借用乙個例項,講解如何註冊並啟用乙個新的activity,以及多個activity之間如何傳值。下面是主activity的 在相同包下,新建乙個類,繼承至activity這個類,重寫oncreate方法.下面是布局檔案main.xml 下面是布局檔案other.xml 最後,注意修改專案清單檔...
Activity之間的傳值
activity之間的傳值 方法1 1給2傳值 activity1 final intent intent new intent mctx,activity1.class 將當前使用者傳遞下去 intent.putextra user muser startactivity intent 裡邊mus...
Activity之間進行頁面傳值
android應用程式中在頁面跳轉時往往需要傳送資料,在另乙個activity中使用某乙個activity中的資料。在activity跳轉時資料傳送的方法有 1 直接在intent物件中使用putextra方法傳送數值。intent.putextra name feng 2 使用bundle傳送資料...