簡體   English   中英

startActivityForResult不在片段中工作而不是啟動活動

[英]startActivityForResult not working in fragment and not start an activity

我試圖在我的片段中啟動startActivityForResult ,我這樣做:

public class MyFragment extends Fragment {
.....
 new GetNidBase(getContext(), code, Integer.parseInt(_newBlock.split("-")[3]),
     WKT1, user, cookie, permissions, _newBlock, (nidBase) -> {
     if (!TextUtils.isEmpty(nidBase)) {
         Intent intent = new Intent(requireContext(), FormSaveDocument.class);
         intent.putExtra(BaseFragment.ARG_COOKIE, HttpUtil.serializeCookie(cookie));
         intent.putExtra(BaseFragment.ARG_USER, common.Utils.compactUserInstance(user));
         intent.putExtra(BaseFragment.ARG_PERMISSIONS, GsonUtil.createGson().toJson(permissions));
         startActivityForResult(intent, INTENTRESULT);
         }

我想在片段的onActivityForResult()中處理我的結果但是我想知道, FormSaveDocument沒有啟動? FormSaveDocument是一個活動類!! startActivityForResult(intent, INTENTRESULT)不起作用。

我也試過這個:

MyFragment.this.startActivityForResult(intent, INTENTRESULT);

這是我片段中的onActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
    if (requestCode == INTENTRESULT && resultCode == 20) {
        saveDraw();
    }
}

更新

這是myActivity和FormSaveDocument清單信息:

   <activity
        android:name=".activity.MainActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    <activity
        android:name=".forms.FormSaveDocument"
        android:configChanges="keyboardHidden|orientation|screenSize" />

    </activity>

在您的活動中您獲得結果的位置必須使用與用於添加Fragment的片段相同的對象。

請用
startActivityForResult(intent, INTENTRESULT); 調用MyFragment.this.startActivityForResult(intent, INTENTRESULT); 從你的片段,和

然后在你的片段中處理onActivityResult()之后

這將使您回調片段

另一種方案是:
處理活動中的onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        try {
            getCurrentFrg().onActivityResult(requestCode,resultCode,data);    
        }catch (Exception e){
            e.printStackTrace();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM