startActivityForResult requestCode为有效的int

时间:2017-11-27 14:31:44

标签: android

当从片段打开活动时,我发现Android startActivityForResult requestCode有一些奇怪的行为。我有一个类,我存储请求代码,因此它们在一个地方,我在传递请求代码时使用它们。但是我发现41,51会返回-1,而21 31就可以了,它似乎就是那个以1结尾的结果。令我感到困惑的是为什么会发生这种情况,但如果有人遇到过这种情况,请告诉我原因:)

public class RequestCodes {

    // request codes
    public static final int INTRO_ACTIVITY = 1;
    public static final int MAIN_ACTIVITY = 2;
    public static final int ABOUT_ACTIVITY = 3;
    ...
    public static final int EXAMPLE_ACTIVITY = 41;
}

用于片段

Intent i = new Intent(getActivity(), ExampleActivity.class);
i.putExtra(Extras.ID, id);
startActivityForResult(i, RequestCodes.EXAMPLE_ACTIVITY); 

onActivityResult在片段

中声明
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    // used to see the request
    showToast("Request Code = " + requestCode);
}

和示例活动中的onBackPressed

@Override
public void onBackPressed() {

    Intent i = new Intent();
    i.putExtra(Extras.ID, id);
    setResult(RESULT_OK, i);

    super.onBackPressed();
}

0 个答案:

没有答案