如何在Intent中检查存在的额外内容

时间:2012-12-26 07:47:13

标签: android

当我尝试获取额外内容时,我会收到致命错误

try{
        Sdacha=getIntent().getExtras().getString("Sdacha");
        }
        catch(NullPointerException e){}

如何查看存在的附加内容?

4 个答案:

答案 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。