我发送了一些新的意图。在那里它抓取捆绑并测试它是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");
}
编辑:这是创建包的地方。
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);
答案 0 :(得分:5)
我认为问题不在于您的论坛是null
。这不可能是因为你很快就会得到NullPointerException
。
问题是您的错误消息有误。改变这个:
if(b == null || !b.containsKey("WELL")) {
Log.v("BUNDLE", "bun is null");
} else {
// ...
}
对此:
if (!b.containsKey("WELL")) {
Log.v("BUNDLE", "bundle does not contain key WELL");
} else {
// ...
}
捆绑包不包含此密钥的原因是因为您没有添加它。
答案 1 :(得分:0)
嗯,你在使用它之后测试b == null
,这一定是错的。你也错过了最初的if
?
编辑后
您没有在包中放入“WELL”,因此会记录字符串“bun is null”。 b
必须是非空的,否则您手上就会崩溃。尝试将if
句更改为此并报告您获得的内容:
if (b == null) {
Log.v("BUNDLE", "bun is null");
} else if (!b.containsKey("WELL")) {
Log.v("BUNDLE", "bun doesn't contain WELL");
else {
Log.v("BUNDLE", "Got bun well");
}
答案 2 :(得分:0)
我更改了您的if
语句以匹配日志消息。请运行该程序并检查日志消息。
if(b == null) {
Log.v("BUNDLE", "bun is null");
} else {
if (b.containsKey("WELL")) {
Log.v("BUNDLE", "Got bun well");
}
}