ListViewにチェックボックスを付け(multiple_choiceの形式)、複数ある項目のうち
チェックがつけられた項目を削除できるようにしたいです。
今組んでいるコードでは、SparseBooleanArrayのvalueAtメソッドを使い
チェックのついているものを取得しようとしています。
しかし実際に動かしてみると、どの項目をチェックしたかに関わらず、
1回目のループでif(checked.valueAt(i))がtrueとなり、
一番上の項目が削除されます。どうすればよろしいでしょうか。
よろしくお願いいたします。
※掲載したコードは、削除ボタンをクリックした際に行われる処理です。
Java
1//完了画面へ 2 View.OnClickListener buttonDelete = new View.OnClickListener() { 3 @Override 4 public void onClick(View view) { 5 EmpView = findViewById(R.id.EmpView); 6 SparseBooleanArray checked = EmpView.getCheckedItemPositions(); 7 dbOpenHelper = new DBOpenHelper(getApplicationContext()); 8 db = dbOpenHelper.getWritableDatabase(); 9 //チェック項目を消す 10 try { 11 for(int i = 0; i<checked.size(); i++) { 12 if(checked.valueAt(i)) { 13 db.delete("m_employee","_id = ?",new String[]{codes.get(i)}); 14 } 15 } 16 } catch (SQLiteException e) { 17 e.printStackTrace(); 18 Intent intent = new Intent(getApplicationContext(),Error.class); 19 startActivity(intent); 20 } finally { 21 db.close(); 22 } 23 Intent intent = new Intent(getApplicationContext(),Complete.class); 24 startActivity(intent); 25 } 26 };
回答1件
あなたの回答
tips
プレビュー