死代码android setMultiChoiceItems

时间:2012-02-03 11:36:55

标签: java android dialog dead-code

我使用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]选择了某个项目,如果是,请在a中添加该名称 串

我在res[i] = usrCats[i].toString()中有一个空指针访问,在最后一个if语句中有一个死代码警告。

我正在使用最后一个if,检查是否有任何选择以便调用我的方法。

我做错了什么?

1 个答案:

答案 0 :(得分: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);
        }       
        })