мертвый код android setMultiChoiceItems - PullRequest
0 голосов
/ 03 февраля 2012

Я использую 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.

Я использую последний if, чтобы проверить, был ли какой-либо выбор, чтобы вызвать мой метод.1011 * что я делаю не так?

1 Ответ

1 голос
/ 03 февраля 2012
        .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);
        }       
        })
...