返回?cái)?shù)據(jù)給上一個活動(intent返回值)

既然可以傳遞數(shù)據(jù)給下一個活動,那么能不能返回?cái)?shù)據(jù)給上一個活動啦填抬?答案是坑定的。不過不同的是隧期,返回上一個活動只需要按一下Back鍵就可以了飒责,并沒有一個用于啟動活動的Intent來傳遞數(shù)據(jù)。通過查看文檔你會發(fā)現(xiàn)仆潮,Activity中還有一個startActivityForResult()宏蛉;方法來啟動活動的,但是這個個方法期望在活動銷毀的時(shí)候能夠返回一個和結(jié)果給上一個活動性置。毫無疑問拾并,這就是我們所需要的。

startActivityForResult()方法接受兩個參數(shù),第一個參數(shù)耗時(shí)Intent嗅义,第二個參數(shù)是請求碼屏歹,用于在之后的回調(diào)中判斷數(shù)據(jù)的來源,我們還是來實(shí)戰(zhàn)一下之碗,修改FristActivity中按鈕的點(diǎn)擊事件蝙眶,代碼如下所示:

FristActivity ? 中的代碼

這里我們使用了startActivityForResult()方法來啟動Main_two,請求碼只要是一個唯一值就可以了褪那,這里傳入了1,幽纷。接下來我們在Main_two中給按鈕注冊點(diǎn)擊事件,并在點(diǎn)擊事件中添加返回?cái)?shù)據(jù)的邏輯博敬,代碼如下:

Main_two ? Activity中的代碼

可以看到友浸,我們還是構(gòu)建了一個Intent,只不過這個intent僅僅使用與傳遞數(shù)據(jù)而已冶忱,他沒有指定任何的“意圖”尾菇。緊接著把要傳遞的數(shù)據(jù)放在Intent中然后調(diào)用setRestult()方法中接受的兩個參數(shù)境析,第一個參數(shù)用于向上一個活動返回處理結(jié)果們一般只是使用RESULT_OKhe RESULT_CANCLED這兩個值囚枪,第二個參數(shù)吧帶有數(shù)據(jù)的Intent傳遞過去,然后調(diào)用了finish()方法來銷毀當(dāng)前活動劳淆。

? ? ? ? 由于我們使用startActivityForResult()來啟動Main_two (Activity活動)链沼,在Main_two被銷毀之后會回調(diào)上一個活動的onActivityResult()方法,因此我們需要在FristActivity中重寫這個方法來的到返回值的數(shù)據(jù)沛鸵,如下所示:

//在銷毀Main_two之后括勺,在FristActivity中重寫的方法,用于接收Main_two返回回來的數(shù)據(jù)

? ? ? ? ? ? ? ? onActivityResult()方法有三個參數(shù):

?第一個參數(shù) requestCode:

? ? ? ? ? ? ?即我們在啟動活動時(shí)傳入的請求碼曲掰。

?第二個參數(shù)resultCode:

? ? ? ? ? ? ?即我們返回?cái)?shù)據(jù)是處理的結(jié)果疾捍。

?第三個參數(shù)data:

? ? ? ? ? ? ? 及攜帶這返回?cái)?shù)據(jù)的Intent。

? ? ? ? ? ? ? ? ?由于在一個活動中有startActivityForResult()來啟動很多不同的活動栏妖,每一個活動返回的數(shù)據(jù)都會調(diào)用到ActivityResult()這個方法中的乱豆,因此我們首先要做到的就是先檢查requestCode的值來判斷數(shù)據(jù)的來源。確定數(shù)據(jù)是從Main_two返回的之后吊趾,我們再通過resultCode的值來判斷處理結(jié)果是否成功宛裕。最后從data中取值并打印出來,這樣就完成了向上一個活動返回?cái)?shù)據(jù)的工作论泛。

-------------------------------------------------

這個時(shí)候你可能會問揩尸,如果用戶在Main_two中并不是通過點(diǎn)擊按鈕,而是通過按下Back鍵回到FristActivity屁奏,這樣數(shù)據(jù)就沒辦法返回了嗎岩榆?沒錯。不過這種情況還是很好處理的,我們可以通過Mian_two中重寫onBackPressed()方法來解決這個問題朗恳,代碼如下:

Mian_two(Activity)

這樣的話湿颅,當(dāng)用戶按下Back鍵,就會去執(zhí)行onBackPressed()方法中的代碼粥诫,我們在這里添加返回?cái)?shù)據(jù)的邏輯就行了油航。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市怀浆,隨后出現(xiàn)的幾起案子谊囚,更是在濱河造成了極大的恐慌,老刑警劉巖执赡,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镰踏,死亡現(xiàn)場離奇詭異,居然都是意外死亡沙合,警方通過查閱死者的電腦和手機(jī)奠伪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來首懈,“玉大人绊率,你說我怎么就攤上這事【柯模” “怎么了滤否?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長最仑。 經(jīng)常有香客問我藐俺,道長,這世上最難降的妖魔是什么泥彤? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任欲芹,我火速辦了婚禮,結(jié)果婚禮上吟吝,老公的妹妹穿的比我還像新娘菱父。我一直安慰自己,他們只是感情好爸黄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布滞伟。 她就那樣靜靜地躺著,像睡著了一般炕贵。 火紅的嫁衣襯著肌膚如雪梆奈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天称开,我揣著相機(jī)與錄音亩钟,去河邊找鬼乓梨。 笑死,一個胖子當(dāng)著我的面吹牛清酥,可吹牛的內(nèi)容都是我干的扶镀。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼焰轻,長吁一口氣:“原來是場噩夢啊……” “哼臭觉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辱志,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蝠筑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后揩懒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體什乙,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年已球,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臣镣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡智亮,死狀恐怖忆某,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸽素,我是刑警寧澤褒繁,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布亦鳞,位于F島的核電站馍忽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏燕差。R本人自食惡果不足惜遭笋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徒探。 院中可真熱鬧瓦呼,春花似錦、人聲如沸测暗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碗啄。三九已至质和,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稚字,已是汗流浹背饲宿。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工厦酬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瘫想。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓仗阅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子况增,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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