簡體   English   中英

如何在Intent中檢查存在的額外內容

[英]How to check existence Extras in Intent

當我試圖獲得額外的東西,我得到致命的Eroorr

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

我怎樣才能檢查存在的附加內容?

嘗試這個,

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");
        }
        }

Extras獲取內容之前,只需檢查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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM