Activity和Fragment之間的數(shù)據(jù)通信

csdnActivity和Fragment之間的數(shù)據(jù)通信有兩種:Activity向Fragment中傳遞數(shù)據(jù)骏全、Fragment向Activity傳遞數(shù)據(jù)。

學(xué)習(xí)Android的同學(xué)注意了D岣=薄!

學(xué)習(xí)過(guò)程中遇到什么問(wèn)題或者想獲取學(xué)習(xí)資源的話(huà)棺棵,歡迎加入Android學(xué)習(xí)交流群楼咳,群號(hào)碼:364595326? 我們一起學(xué)Android!

同時(shí)Activity之間也能傳遞數(shù)據(jù)烛恤,F(xiàn)ragment之間又能傳遞數(shù)據(jù)母怜。本文主要是總結(jié)自己在項(xiàng)目中遇到的問(wèn)題以及解決辦法!

Activity向Fragment中傳遞數(shù)據(jù)

項(xiàng)目中遇到的問(wèn)題:項(xiàng)目采用的是一個(gè)MainActivity + 4個(gè)Fragment搭建的框架棒动,其余的小功能采用的是Activity去實(shí)現(xiàn);在實(shí)現(xiàn)個(gè)人中心(Fragment)時(shí)需要將登錄的用戶(hù)名返回給個(gè)人中心顯示在頁(yè)面上宾添。

我的實(shí)現(xiàn)方法:

通過(guò)用戶(hù)注冊(cè)時(shí)向數(shù)據(jù)庫(kù)中插入用戶(hù)信息船惨,在用戶(hù)中心判斷用戶(hù)是否存在柜裸,存在則顯示用戶(hù)名。這個(gè)方法有點(diǎn)不像Fragment向Activity傳遞數(shù)據(jù)的解決辦法粱锐。但是能實(shí)現(xiàn)我所要求的功能疙挺。(本人小白,能實(shí)現(xiàn)功能已經(jīng)高興一天了怜浅,哈哈)

網(wǎng)上的數(shù)據(jù)傳遞方法 1(鏈接):

給Fragment添加newInstance方法铐然,將需要的參數(shù)傳入,設(shè)置到bundle中恶座,然后setArguments(bundle)搀暑,最后在onCreate中進(jìn)行獲取跨琳;

注意事項(xiàng):setArguments方法必須在fragment創(chuàng)建以后自点,添加給Activity前完成。千萬(wàn)不要脉让,首先調(diào)用了add桂敛,然后設(shè)置arguments

網(wǎng)上的數(shù)據(jù)傳遞方法 2

直接在Fragment中采用getActivity.getIntent()拿到Activity中的參數(shù),故此能拿到Activity中的方法

網(wǎng)上的數(shù)據(jù)傳遞方法 3

Activity在切換Fragment的時(shí)候溅潜,通過(guò)setArguments向Fragment傳遞參數(shù)术唬,F(xiàn)ragment通過(guò)getArguments();獲得從activity中傳遞過(guò)來(lái)的值

Fragment向Activity傳遞數(shù)據(jù)

網(wǎng)上的數(shù)據(jù)傳遞方法 1(鏈接):

在Fragment中寫(xiě)一個(gè)回調(diào)接口

在Activity中實(shí)現(xiàn)這個(gè)接口

在Fragment中的onAttach方法中得到Activity中實(shí)現(xiàn)好的實(shí)例化接口對(duì)象

用接口對(duì)象進(jìn)行傳值

Activity向Activity傳遞數(shù)據(jù)

第一行代碼中寫(xiě)到:

活動(dòng)之間傳遞數(shù)據(jù)可以采用new Intent().putExtra()方法傳遞,putExtra()方法的第一個(gè)參數(shù)是鍵滚澜,第二個(gè)參數(shù)是值粗仓;在第二個(gè)Activity中g(shù)etIntent即可拿到第一個(gè)Activity傳遞過(guò)來(lái)的intent,在通過(guò)intent.get…Extra()過(guò)來(lái)方法拿到第一個(gè)Activity傳遞過(guò)來(lái)的數(shù)據(jù)博秫。

使用Bundle來(lái)傳遞數(shù)據(jù):首先創(chuàng)建一個(gè)Bundle對(duì)象潦牛,采用bundle.putExtra()方法,道理同上挡育,接著intent.putExtra(bundle)傳遞數(shù)據(jù)巴碗。在第二個(gè)Activity中g(shù)etIntent即可拿到第一個(gè)Activity傳遞過(guò)來(lái)的bundle,在通過(guò)bundle.get…Extra()過(guò)來(lái)方法拿到第一個(gè)Activity傳遞過(guò)來(lái)的數(shù)據(jù)即寒。

Activity返回?cái)?shù)據(jù)給上一個(gè)Activity

第一行代碼中如此寫(xiě)到:

在第一個(gè)Activity中啟動(dòng)第二個(gè)Activity:startActivityForResult(intent,1)//第一個(gè)參數(shù)是intent橡淆,第二個(gè)參數(shù)是請(qǐng)求碼,只要值唯一就ok

在第二個(gè)Activity中用intent攜帶數(shù)據(jù)母赵,然后setResult(RESULR_OK,intent)逸爵;將數(shù)據(jù)返回,最后finish();關(guān)閉當(dāng)前Activity(切記一定要關(guān)閉當(dāng)前Activity)

在第一個(gè)Activity中重寫(xiě)onActivityResult( int requestCode,int resultCode,Intetnt data)方法,通過(guò)判斷requestCode來(lái)識(shí)別是哪個(gè)Activity返回的數(shù)據(jù)凹嘲,在判斷返回?cái)?shù)據(jù)的處理結(jié)果师倔,最后通過(guò)data.getStringExtra()方法拿到數(shù)據(jù)。

Fragment向Fragment傳遞數(shù)據(jù)

回顧項(xiàng)目中采用一個(gè)MainActivity + 4個(gè)Fragment搭建的框架周蹭,那么我想在其中的兩個(gè)Fragment之間有數(shù)據(jù)交互怎么解決趋艘?

第一行代碼中如此說(shuō)道:

首先在一個(gè)Fragment中拿到與之相關(guān)聯(lián)的Activity疲恢,然后通過(guò)這個(gè)Activity去獲取另一個(gè)Fragment,這樣就實(shí)現(xiàn)了Fargment與Fragment之間的通信

網(wǎng)上的說(shuō)法(鏈接):

在Fragment2中瓷胧,新建一個(gè)函數(shù):newInstance(String text)來(lái)接收傳過(guò)來(lái)的參數(shù)

然后在Fragment2的OnCreateView的時(shí)候再?gòu)腶rguments中獲取參數(shù)

在Fragment1中显拳,在調(diào)起Fragmen2t時(shí),通過(guò)調(diào)用newInstance函數(shù)來(lái)獲取實(shí)例并傳遞參數(shù)

Fragment2返回?cái)?shù)據(jù)給ragment1

采用回調(diào)方法實(shí)現(xiàn)[直接看第三部分](鏈接

總結(jié)

數(shù)據(jù)傳遞出去:

可以采用intent搓萧,或者bundle傳遞出去

可以采用新建一個(gè)setValue方法將數(shù)據(jù)傳遞出去

采用回調(diào)方法實(shí)現(xiàn)數(shù)據(jù)傳遞

數(shù)據(jù)傳遞回來(lái):

采用接口回調(diào)方式

因此接口回調(diào)方法很重要杂数,一點(diǎn)要掌握!瘸洛!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末揍移,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子货矮,更是在濱河造成了極大的恐慌羊精,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囚玫,死亡現(xiàn)場(chǎng)離奇詭異喧锦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)抓督,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)燃少,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人铃在,你說(shuō)我怎么就攤上這事阵具。” “怎么了定铜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵阳液,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我揣炕,道長(zhǎng)帘皿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任畸陡,我火速辦了婚禮鹰溜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丁恭。我一直安慰自己曹动,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布牲览。 她就那樣靜靜地躺著墓陈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贡必,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天熬的,我揣著相機(jī)與錄音,去河邊找鬼赊级。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岔绸,可吹牛的內(nèi)容都是我干的理逊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼盒揉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晋被!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起刚盈,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤羡洛,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后藕漱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體欲侮,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年肋联,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了威蕉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡橄仍,死狀恐怖韧涨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侮繁,我是刑警寧澤虑粥,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站宪哩,受9級(jí)特大地震影響娩贷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斋射,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一育勺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罗岖,春花似錦涧至、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春赘方,著一層夾襖步出監(jiān)牢的瞬間烧颖,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工窄陡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炕淮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓跳夭,卻偏偏與公主長(zhǎng)得像涂圆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子币叹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評(píng)論 25 707
  • 白云蒼狗润歉,時(shí)光荏苒,青春年華不知不覺(jué)間在指縫間流逝颈抚,如五顏六色的泡沫踩衩,還來(lái)不及放飛,即刻成為泡影贩汉,徒留一股化學(xué)劑的...
    綠油油Yan閱讀 208評(píng)論 0 1
  • “信”是書(shū)的標(biāo)題驱富,也是貫穿整本書(shū)的線(xiàn)索,信中寄托的是哥哥對(duì)弟弟的牽掛匹舞,而一封封高墻之內(nèi)的信萌朱,帶給他弟弟的卻是...
    SIRIUS_SHUAI閱讀 460評(píng)論 0 0
  • 重置mysql的root密碼的方法 Windows平臺(tái) 首先檢查mysql服務(wù)是否啟動(dòng),若已啟動(dòng)則先將其停止服務(wù)策菜,...
    Tag_sk閱讀 471評(píng)論 1 0
  • 作為一名十年的資深觀眾晶疼,我對(duì)于美劇的情愫不亞于我對(duì)于美食的熱愛(ài)∮趾看多了其實(shí)你也會(huì)發(fā)現(xiàn)其實(shí)美劇也有三六九等:青春美劇...
    會(huì)有熊貓的閱讀 1,475評(píng)論 0 2