当我尝试获取 Extras 时,我得到了 Fatal Eroorr
try{
Sdacha=getIntent().getExtras().getString("Sdacha");
}
catch(NullPointerException e){}
如何检查是否存在 Extras?
当我尝试获取 Extras 时,我得到了 Fatal Eroorr
try{
Sdacha=getIntent().getExtras().getString("Sdacha");
}
catch(NullPointerException e){}
如何检查是否存在 Extras?
尝试这个,
if(getIntent().getExtras().containsKey("Sdacha"))
{
String preview=getIntent().getExtras().getString("Sdacha");
}
编辑
同样正如 Evos 所建议的,也可以在上面的代码中再添加一层 Null 检查。如果您确定 extras 不会为 null,那么上述方法很好。如果不遵循以下一项。
if(getIntent().getExtras()!=null)
{
if(getIntent().getExtras().containsKey("Sdacha"))
{
String preview=getIntent().getExtras().getString("Sdacha");
}
}
Extras
在从中获取某些内容之前检查它是否不为空很容易:
if (getIntent().getExtras() != null){
Sdacha=getIntent().getExtras().getString("Sdacha");
}
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String preview = bundle.getString("Sdacha");
if (preview != null) {
// do anything .....
}
}
为了防止这种情况发生,我喜欢将我的调用封装到一个静态 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。