当我尝试获取额外内容时,我会收到致命错误
try{
Sdacha=getIntent().getExtras().getString("Sdacha");
}
catch(NullPointerException e){}
如何查看存在的附加内容?
答案 0 :(得分:15)
试试这个,
if(getIntent().getExtras().containsKey("Sdacha"))
{
String preview=getIntent().getExtras().getString("Sdacha");
}
修改强>
同样正如Evos建议的那样,还可以在上面的代码中添加一层Null检查。如果你确定附加内容不是null,那么上面的方法是好的。如果不遵循下面的那个。
if(getIntent().getExtras()!=null)
{
if(getIntent().getExtras().containsKey("Sdacha"))
{
String preview=getIntent().getExtras().getString("Sdacha");
}
}
答案 1 :(得分:3)
在从中获取内容之前,只需检查Extras
是否为空即可:
if (getIntent().getExtras() != null){
Sdacha=getIntent().getExtras().getString("Sdacha");
}
答案 2 :(得分:1)
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String preview = bundle.getString("Sdacha");
if (preview != null) {
// do anything .....
}
}
答案 3 :(得分:0)
为了防止这种情况发生,我喜欢将我的调用封装到静态startActivity方法中,与片段中的newInstance()模式相同:
public static void startActivity(Activity activity, int param, int flags){
Intent intent = new Intent(activity, MainActivity.class);
intent.setFlags(flags);
intent.putExtra(PARAM, param);
activity.startActivity(intent);
}
当然,如果您从其他活动中使用此方法,您将永远不会拥有NPE。