多個Activity之間傳值,使用Intent

2021-07-11 08:34:29 字數 1976 閱讀 8173

感覺已經好久都沒有寫部落格了,今天來更新一篇,雖然是很零碎的知識點,但也是好不容易才擠出時間來寫的,僅供參考,大神就不要吐槽了,好了廢話就不多說了

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傳送資料...