2012-02-03 5 views
0

私は、ダイアログのリストにsetMultiChoiceItemsを使用します。 OKコードをクリックすると、私は項目がif(selections[i]で選択し、もしそうなら、私はnullポインタアクセスを持っていますデッドコード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); 
}  
}) 

ときres[i] = usrCats[i].toString()と最後のifステートメントのデッドコード警告。

最後のifを使用して、自分のメソッドを呼び出すための選択肢があるかどうかを確認します。

何が間違っていますか?このコードは、のためにコンパイルする場合、私はまだ疑問持っ

+0

(、L = usrCats.lengthをI = -1をint型; ++ iのリットルを<;){ – ngesh

+0

あなたは非常に間違っているとあなたがit.itです試してみてください非常に効率的です –

答えて

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

私は何をすべきですか?あなたの意見は何ですか? –

関連する問題