2012-02-03 55 views
0

我使用setMultiChoiceItems在對話框的列表。 後單擊OK代碼死代碼的Android setMultiChoiceItems

.setPositiveButton(R.string.alert_remove, new DialogInterface.OnClickListener(){ 
public void onClick(DialogInterface dialog, int which){ 
String[] res = null; 
for(int i=-1,l=usrCats.length; ++i<l;){ 
    if(selections[i]) 
     res[i] = usrCats[i].toString(); 
} 
if(res != null && res.length>0) 
    dbManager.removeUserShoppingCategories(res); 
}  
}) 

我要檢查,如果一個項目選擇與if(selections[i]如果是這樣,

我有在一個空指針訪問在 字符串添加名稱res[i] = usrCats[i].toString()並在最後if語句死代碼警告。

我使用的是最後如果,檢查是否出現了任何選擇,以便調用我的方法。

我在做什麼錯?

+0

我仍然有疑問,如果此代碼與編譯(INT I = -1,L = usrCats.length; ++ i的 ngesh 2012-02-03 11:52:43

+0

你是非常錯誤的,你應該嘗試it.it是非常有效的 – 2012-02-03 12:07:16

回答

1
 .setPositiveButton(R.string.alert_remove, new DialogInterface.OnClickListener(){ 
     public void onClick(DialogInterface dialog, int which){ 
     String[] res = null; // you initialised it with null 
     for(int i=-1,l=usrCats.length; ++i<l;){ /*this line and the below line are condition 
    statemnts whose code may not run. so there are chances that your **res** will 
    remain initialised with null*/ 
      if(selections[i]) 
       res[i] = usrCats[i].toString(); 
     } 
     if(res != null && res.length>0)// so here it shows a dead code warning. 
      dbManager.removeUserShoppingCategories(res); 
     }  
     }) 
+0

所以我應該怎麼辦呢?你有什麼看法? – 2012-02-03 12:06:22