日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

(转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)

發布時間:2025/3/21 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转载)Android进阶2之Activity之间数据交流(onActivityResult的用法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自? http://www.blogjava.net/mixer-a/archive/2012/03/23/375014.html

主要功能:

在一個主界面(主Activity)上能連接往許多不同子功能模塊(子Activity上去),當子模塊的事情做完之后就回到主界面,或許還同時返回一些子模塊完成的數據交給主Activity處理。這樣的數據交流就要用到回調函數onActivityResult。

<1>startActivityForResult(Intent?intent, int requestCode);

第一個參數:一個Intent對象

第二個參數:如果> = 0,當Activity結束時requestCode將歸還在onActivityResult()中。以便確定返回的數據是從哪個Activity中返回

<2>onActivityResult(int requestCode, int resultCode,?Intent?data)

第一個參數:這個整數requestCode提供給onActivityResult,是以便確認返回的數據是從哪個Activity返回的。

? ? ? ? ? ? 這個requestCode和startActivityForResult中的requestCode相對應。

第二個參數:這整數resultCode是由子Activity通過其setResult()方法返回。

第三個參數:一個Intent對象,帶有返回的數據。

<3>setResult(int resultCode,?Intent?data)

調用這個方法把Activity想要返回的數據返回到父Activity

第一個參數:當Activity結束時resultCode將歸還在onActivityResult()中,一般為RESULT_CANCELED , RESULT_OK。

第二個參數:一個Intent對象,返回給父Activity的數據。

?

?

? ??? ?

? ?

?

?

本實例一共有三個Activity。點擊飛往火星跳轉到otherActivity,把地球帶給火星的消息顯示在otherActivity中。點擊返回地球時把火星帶給地球的消息傳到主Activity.

同理:

點擊飛往月球跳轉到thirdActivity,把地球帶給月球的消息顯示在thirdActivity中。點擊返回地球時把月球帶給地球的消息傳到主Activity.

?

具體實現:

主Activity:


otherActivity:

thirdActivity:

?

?

?

轉載自?? http://www.2cto.com/kf/201205/133027.html

?

androidActivity之間的跳轉不只是有startActivity(Intent i)的,startActivityForResult(Intent intent, int requestCode)也是常用的方法。

?? 其作用是可以用onActivityResult(int requestCode, int resultCode, Intent data)方法獲得請求Activity結束之后的操作。 ?? 需要注意三個方法:startActivityForResult(Intent intent, int requestCode),onActivityResult(int requestCode, int resultCode, Intent data),setResult(int resultCode, Intent data)

例如如下代碼:從From跳轉至ToB和ToC From: if(條件){ Intent intent = new Intent(this, ToB.class); startActivityForResult(serverIntent, REQUEST_CODE_01);//跳轉至ToB }else{ Intent intent = new Intent(this, ToC.class); startActivityForResult(serverIntent, REQUEST_CODE_02);//跳轉至ToC } ? public void onActivityResult(int requestCode, int resultCode, Intent data){ ????????? switch (requestCode) { case REQUEST_CODE_01: ??????????????????????? if(resultCode==Activity.RESULT_OK) ??????????????????????? //do something ??????????????????????? break; ??????????????? case REQUEST_CODE_02: //do something ??????????????????????? break; } } ? ? ??? 這里說說startActivityForResult(Intent intent, int requestCode)的參數,第一個Intent不用說了,需要注意的是第二個,我們用的是REQUEST_CODE_01和REQUEST_CODE_02,其實這個是我們自己定義的一個int型常量,用于標記的,具體作用可在onActivityResult方法里看到,用于判斷是從哪個Activity返回的。 ? ToB: Intent intent = new Intent(); intent.putExtra(key, value); setResult(Activity.RESULT_OK, intent); finish();//結束之后會將結果傳回From ? ToC: Intent intent = new Intent(); intent.putExtra(key, value); setResult(Activity.RESULT_OK, intent); finish();//結束之后會將結果傳回From ? ?? setResult的第一個參數對應上面onActivityResult的第二個參數,注意別把onActivityResult的第一個參數與第二個參數搞混淆了,一個是請求標記,一個是返回標記。 ? 歡迎補充~~~

轉載于:https://www.cnblogs.com/zqq965774513/p/3571007.html

總結

以上是生活随笔為你收集整理的(转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。