i在对话框中使用setMultiChoiceItems作为列表。当点击ok时,代码是
.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语句中有一条死代码警告。
我使用最后一个if来检查是否有任何选择,以便调用我的方法。
我做错了什么?
.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);
}
})