Bundle extra 返回 NULL

Bundle extra is returning NULL

我遇到了问题。

在 class "A" 我有代码:

Intent cInt = new Intent(Add_Product_Page.this, CategoryListActivity.class);
Bundle extra = new Bundle();
extra.putBoolean("for_result", true);
startActivityForResult(cInt, GET_CATEGORY, extra);

此代码来自启动 activity

的另一个 class
Bundle extra = getIntent().getExtras();

        if (extra != null) {

            isforResult = cInt.getBooleanExtra("for_result", true);
            setIsforResult(isforResult);

        } else {
            setIsforResult(false);
        }

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("Category");

    }

我调试了 Class A 并且我得到 extra 的值为真但是当我被调试时 另一个 class 我在 extra 中得到 NULL

谁能帮帮我。

提前致谢

像这样尝试

 isforResult = extra.getBoolean("for_result", true);

并删除此 Intent extra = getIntent(); 行它是重复的实例。

试试这个

      Bundle extra = getIntent().getExtras();

        if (extra != null) {

            isforResult = extra.getBoolean("for_result", true);
            setIsforResult(isforResult);

        } else {
            setIsforResult(false);
        }

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("Category");

    }

Activity中使用

Intent in = new Intent(this, RegistrationActivity.class); in.putExtra("yourKey", yourValue); startActivityForResult(in, REQUEST_CODE);

并在 Activity B

Bundle b = getIntent().getExtras();
    if (b != null) {
        boolean value = getIntent().getBooleanExtra("yourKey", true);

    }

startActivityForResult() 的第三个参数 (Bundle option) 不是 "extra" 束。
有关详细信息,请参阅 Context#startActivity(Intent, Bundle)。 那就是启动配置。

使用 Intent#putExtra(String, boolean) 进行布尔运算。

Intent intent = new Intent(Add_Product_Page.this, CategoryListActivity.class);
intent.putExtra("for_result", true);
startActivityForResult(intent, GET_CATEGORY);

然后

boolean b = getIntent().getBooleanExtra("for_result", false);

这等同于

boolean b = getIntent().getExtras().getBoolean("for_result");

你也可以检查 intent 是否有额外的参数:

intent.hasExtra("for_result");