onActivityResult()不起作用

时间:2017-04-17 10:59:41

标签: android android-layout android-studio android-fragments

我是Android的新用户我有一个片段类,当按钮点击操作转到下一个活动&有可能返回一些变量返回。

在片段类

checkin.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i = new Intent(getActivity(), CardAnimation.class);
        getActivity().startActivityForResult(i,222);
    }
});

我正在尝试onActivityResult& OnPermissionResult但它无法正常工作

在活动方面

printout.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
     finishactivity(222);
    }
});

4 个答案:

答案 0 :(得分:1)

如果你打电话

getActivity().startActivityForResult(i,222);

结果将返回到您的活动。如果您想要返回片段,请删除 getActivity()部分。

使用此:

startActivityForResult(i,222);

您还需要setResult(RESULT_OK,intent)才能在活动中返回。

Intent resultIntent = new Intent();
resultIntent.putExtra("KEY", "DATA"); 
setResult(Activity.RESULT_OK, resultIntent);

答案 1 :(得分:1)

请尝试将finishactivity(222);替换为setResult(RESULT_OK)

CardAnimation Activity中的代码应替换如下

printout.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

    setResult(RESULT_OK);
    finish();

    }
});

您将首先收到活动文件中onActivityResult()方法的回调。如果您希望回拨到达您片段的OnActivityResult,则需要在活动中致电super.onActivityResult()

答案 2 :(得分:0)

尝试替换

cv2

finishactivity(222);

答案 3 :(得分:0)

试试这个:

Fragemt课程:

checkin.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent i = new Intent(getActivity(), CardAnimation.class);
        startActivityForResult(i,222);
    }
});

活动类:

printout.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

       Intent resultIntent = new Intent();
       resultIntent.putExtra("YOUR_KEY", "Your data"); 
       setResult(Activity.RESULT_OK, resultIntent);
       finish();
    }
});