【问题标题】:How to implement CheckBox in ListView?如何在 ListView 中实现 CheckBox?
【发布时间】:2018-02-27 07:18:31
【问题描述】:

ListView 中实现CheckBox 时遇到了一些麻烦。我已经按照一些教程进行操作,但是没有用。
这是我的代码:

list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

        checkBox = (CheckBox) list_view.getAdapter().getView(position, view, null).findViewById(R.id.checkBox_pegawai);
        if (checkBox.isChecked()) {
            checkBox.setChecked(false);
        } else {
            checkBox.setChecked(true);
            checkbox_simpan = checkBox.getText().toString();
            Toast.makeText(MutasiActivity.this,"Berhasil", Toast.LENGTH_LONG).show();
        }
    }
});

【问题讨论】:

标签: android checkbox checkboxlist android-checkbox


【解决方案1】:

在你的适配器中使用List&lt;String&gt; 来保存选中的项目,并在你的适配器的getView() 中实现Checked 更改监听器。

例子:

class AdapterList extents BaseAdapter{
 List<String> selectedItems=new ArrayList<>();
 List<String> listOfItems=new ArrayList<>();
 //your other methods

 View getView(View v,int position)     [
 //inflate you view and find your checkbox

  checkbox.setChecked(selectedItems.contains(listOfItems.get(position))
   checkbox.setOnCheckedChangeListener(new                 CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if(isChecked)
selectedItems.add(listOfItems.get(position);
else
  selectedItems.reove(listOfItems.get(position);
                    }
                });
} 

}

【讨论】:

  • 我尝试了您的代码,但在 checkbox.setChecked(selectedItems.contains(listOfItems.get(position)) 中有一些错误
  • 你需要在我的代码中使用你的复选框对象而不是checkbox
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
相关资源
最近更新 更多