【发布时间】:2017-04-05 22:35:01
【问题描述】:
在 DeleteTask 中,如果在 listView 中选中复选框,我有一个用于删除列表的按钮。
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int itemCount = listview.getCount();
for (int i = itemCount - 1; i >= 0; i--) {
SearchList search = adapter.getItem(i);
if (search.isSelected()) {
adapter.removeItem(i);
delete.setText("DELETE");
counter=0;
}
}
}
});
在DeleteAdapter中,有一个计数器,用于对选中的复选框进行计数,并在button中显示该计数器。单击删除button 后,计数器假设重置为0,并且仅在删除button setText 中显示DELETE。
holder.ckbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((CheckBox) v).isChecked()) {
int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag.
search.get(getPosition).setSelected(((CheckBox)v).isChecked()); // Set the value of checkbox to maintain its state.
checkBoxCounter ++;
delete.setText("DELETE"+""+"("+ checkBoxCounter +")");
} else
{
int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag.
search.get(getPosition).setSelected(((CheckBox) v).isChecked()); // Set the value of checkbox to maintain its state.
checkBoxCounter--;
if (checkBoxCounter == 0) {
delete.setText("DELETE");
}
else {
delete.setText("DELETE" + "" + "(" + checkBoxCounter + ")");
}
}
}
});
我现在的问题是单击删除按钮时,它显示“删除”,但是当我选中复选框时,计数器没有重置。如何重置计数器?
编辑
我已将计数器更改为 checkBoxCounter,但仍然得到相同的结果!
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int itemCount = listview.getCount();
for (int i = itemCount - 1; i >= 0; i--) {
SearchList search = adapter.getItem(i);
if (search.isSelected()) {
adapter.removeItem(i);
delete.setText("DELETE");
checkBoxCounter=0;
}
}
}
});
当我单击
button删除时,按钮显示DELETE。但是,当我 再次按下另一个复选框,计数器从最后一组开始 值而不是 1。
请帮忙。
这是我的应用屏幕截图的一部分
【问题讨论】:
-
你在做的重置是什么意思 counter = 0
-
您必须在删除 onclick 侦听器中将
checkBoxCounter设置为0。您更新的counter值可能不是checkBoxCounter的错字。 -
@jiteshmohite 每次单击删除按钮时,该按钮都会设置Text 'DELETE'。它应该始终将计数器重置为 0。但是当我选中复选框时,按钮 setText 显示
DELETE(3)。 -
@UmaKanth 我更改了变量,但结果仍然相同。有两个不同的类,变量的名称必须相同?
-
欢迎您。如果我是你,我会在适配器中定义 int 并通过函数从那里进行控制。
标签: android listview checkbox counter