0

リスト ビューがあります。各行をテキスト ビューとチェック ボックスとしてカスタマイズしました。チェック済みアイテムの名前を取得したいのですが、checkedItemPositons を使用しようとしましたが、2 つのレイアウトが原因で動作しませんか??

削除ボタンを押したときにチェックした項目を削除したいのですが、どうすればよいですか?ここに私のコード

      public class ManageLikes extends Activity implements OnClickListener {

ListView lv;
Button btndelsel, btndelall;
CheckBox chk;
HashMap<Integer, Boolean> mCartItems = new HashMap<Integer, Boolean>();

List<String> likes = new ArrayList<String>();
//DatabaseHandler db = new DatabaseHandler(getApplicationContext());


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.managelikes);

    DatabaseHandler db = new DatabaseHandler(getApplicationContext());
    //String data[] = { "a", "b", "c", "d", "e"};
    likes = db.getAllLikes();

    lv = (ListView) findViewById(R.id.listView);
    btndelsel = (Button) findViewById(R.id.btndelsel);
    btndelall = (Button) findViewById(R.id.btndelall);
    btndelsel.setOnClickListener(this);
    btndelall.setOnClickListener(this);

    lv.setCacheColorHint(0);

    LayoutInflater mLInflater = getLayoutInflater();
    final LAdapter adapter = new LAdapter(getApplicationContext(),likes, mLInflater);
    lv.setAdapter(adapter);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    int count = likes.size();
    String checked = "";

    if (v == btndelsel) {
        //i want delete the checked items here
    }


    if (v == btndelall) {
        //delete all items

    }
    }

     }
4

1 に答える 1

0

次のアプローチを試してください。

  1. 内部アダプターにはチェックボックスのリスナーがあり、チェックボックスをクリックすると、ある種のデータ構造でチェックされた項目を追跡します。
  2. 削除ボタンをクリックすると、チェックされたアイテムを追跡するデータ構造を使用して、データソース、つまりデータベースから適切なデータを削除します。
  3. 削除後は、notifyDataSetChanged() を呼び出して UI を更新し、アダプタを更新します。
于 2012-10-22T10:37:29.510 に答える