[英]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.