2016-11-22 76 views
-1

我有一个listView与复选框。当checkBox被选中/取消选中时,它将统计和显示buttondelete setText中的数字。如果计数器等于0,则它将只显示DELETE,否则将显示DELETE (with the counter)。但问题是删除静止的setText DELETE (with the counter)虽然计数器为0按钮显示复选框计数器

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 
         { 
          if(checkBoxCounter==0) 
          { 
           delete.setText("DELETE"); 
          } 
          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--; 
           delete.setText("DELETE" + "" + "(" + checkBoxCounter + ")"); 
          } 
         } 
        } 
       }); 
+0

@Kathi ya..'private静态INT checkBoxCounter = 0; ' – Hoo

+0

@Kathi它仍然显示DELETE(0) – Hoo

回答

1

现在你永远检查0更改底部else块这样的:

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 + ")"); 
    } 
} 

,并删除早期检查

1

你的代码改成这样

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 
        { 
         checkBoxCounter--; 
         if(checkBoxCounter==0) 
         { 
          delete.setText("DELETE"); 
         } 
         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. 
          delete.setText("DELETE" + "" + "(" + checkBoxCounter + ")"); 
         } 
        } 
       } 
      }); 

希望这对你的作品!