Android Fragment中onActivityResult()方法獲取不到返回?cái)?shù)據(jù)或者無(wú)響應(yīng)的解決辦法(轉(zhuǎn))

本文轉(zhuǎn)載自:文/一個(gè)脫離高級(jí)趣味的人(簡(jiǎn)書(shū)作者),在此非常感謝

原文鏈接:http://www.itdecent.cn/p/701394ee3846

今天在項(xiàng)目中碰到一個(gè)需求,需要在Fragment中跳轉(zhuǎn)到一個(gè)新的Activity之后在Fragment獲取到新的這個(gè)Activity返回的數(shù)據(jù).

下面提供遇到問(wèn)題的解決辦法:

我們正常情況下會(huì)從一個(gè)Activity A 跳轉(zhuǎn)到另一個(gè)Activity B,然后在A 中獲取 B中返回的數(shù)據(jù),一般是在Activity中使用getActivity().startActivityForResult()方法跳轉(zhuǎn)到 B,然后在Activity.onActivityResult()方法中處理返回的數(shù)據(jù)。

但是有時(shí)候我們需要從一個(gè)Fragment中跳轉(zhuǎn)到一個(gè)新的Activity之后在這個(gè)Fragment中獲取到返回的數(shù)據(jù),這里如果我們還像前面在Activity中跳轉(zhuǎn)一樣使用getActivity().startActivityForResult()方法將無(wú)法獲取到相關(guān)的返回?cái)?shù)據(jù)。這里我們需要使用Fragment自身提供的一個(gè)方fragment.startActivityForResult()或者this.startActivityForResult()方法跳轉(zhuǎn)到一個(gè)新的Activity,然后在Fragment中調(diào)用fragment.onActivityResult()就可以處理返回的相關(guān)數(shù)據(jù)。如果以上都還無(wú)法獲取到需要的數(shù)據(jù),那么可能是這樣的問(wèn)題,在Fragment所在的Activity中的onActivityResult()方法中有沒(méi)有加上super.onActivityResult(requestCode, resultCode, data)這行代碼, 沒(méi)有的話(huà)趕緊加上,像下面這樣

@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);//thisswitch(resultCode) {caseConst.RQC_INIT_PASSWORD:? ? ? ? ? ? ? ? listAdapter.notifyDataSetChanged();break;caseConst.RQC_CLOSE_PASSWORD:? ? ? ? ? ? (newLockPatternUtils(this.mContext)).clearLock();? ? ? ? ? ? listAdapter.notifyDataSetChanged();break;default:break;? ? }}

至此問(wèn)題得以解決 ......


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容