Intent Bundle每次都返回Null?

Som*_*omk 1 java android bundle android-intent

我有一些额外的东西发送到一个新的意图.在那里它抓住捆绑并测试它是否是null.null即使我能够获得传递的值并使用它们,每次都是这样.

任何人都可以看到if语句有什么问题吗?

Intent i = getIntent();
Bundle b = i.getExtras();
int picked = b.getInt("PICK");
int correct = b.getInt("CORR");
type = b.getString("RAND");
if(b == null || !b.containsKey("WELL")) {
    Log.v("BUNDLE", "bun is null");
} else {
    Log.v("BUNDLE", "Got bun well");
}
Run Code Online (Sandbox Code Playgroud)

编辑:继承人创建捆绑包的地方.

Intent intent = new Intent(this, app.pack.son.class);
Bundle b = new Bundle();
b.putInt("PICK", pick);
b.putInt("CORR", corr);
b.putString("RAND", "yes");
intent.putExtras(b);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

我不认为你的捆绑是问题null.这不可能是因为你得到的NullPointerException更快.

问题是您的错误消息是错误的.改变这个:

if(b == null || !b.containsKey("WELL")) {
    Log.v("BUNDLE", "bun is null");
} else {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

对此:

if (!b.containsKey("WELL")) {
    Log.v("BUNDLE", "bundle does not contain key WELL");
} else {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

并且捆绑包不包含此密钥的原因是因为您没有添加它.