Zähler zurücksetzen nach Schaltfläche klicken

In DeleteTask habe ich eine Schaltfläche, die verwendet wird, um die Liste zu löschen, wenn das Kontrollkästchen in der listView aktiviert ist.

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

In DeleteAdapter hat es einen Zähler verwendet, um das geprüfte Feld zu zählen und den Zähler in der button anzuzeigen. Sobald die Löschtaste angeklickt ist, wird der Zähler auf 0 zurückgesetzt und zeigt nur DELETE in der Löschtaste setText an.

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

Mein Problem ist jetzt, wenn die Löschtaste geklickt wird, es zeigt 'DELETE', aber wenn ich die CheckBox überprüfe, wurde der Zähler nicht zurückgesetzt. Wie kann ich den Zähler zurücksetzen?

Bearbeiten

Ich habe die Theke zu checkBoxCounter, aber immer noch das gleiche Ergebnis!

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

Wenn ich auf die button Löschen" klicke, zeigt die Schaltfläche DELETE . Aber wenn ich noch ein weiteres Kontrollkästchen drücke, startet der Zähler ab dem letzten eingestellten Wert anstelle von 1.

Bitte helfen Sie.

Hier sind Teil meiner App-Screenshot

Https://i.stack.imgur.com/R954N.jpg

  • RecyclerView ambiguos setVisibility-Funktion, Klick auf eine Ansicht wirkt sich auf mehrere Ansichten aus
  • Android: ViewHolder-Muster und verschiedene Arten von Zeilen?
  • Android zeichnet eine horizontale Linie zwischen den Ansichten
  • Listview itemclick funktioniert nicht
  • "Inhalt hat eine Ansicht mit id-Attribut 'android.r.id.list', die keine ListView-Klasse ist." Wenn eine Listenansicht in einem Fragment erstellt wird
  • Wie kann ich wissen, wann ein Android ListView fertig ist
  • Android ListView - Stoppen Sie das Blättern in der 'ganzen' Zeilenposition
  • Android - EditTexts in ListView gebunden an Custom ArrayAdapter - Verfolgen von Änderungen
  • 3 Solutions collect form web for “Zähler zurücksetzen nach Schaltfläche klicken”

    Wenn es zwei verschiedene Klassen gibt, füge dann eine Methode innerhalb der Adapterklasse hinzu, um den Zähler zurückzusetzen.

    Kann so sein:

    1. Inside Adapter Klasse, fügen Sie hinzu:

       public void resetCheckedCounter(){ checkBoxCounter = 0; } 
    2. Für die Schaltfläche "Löschen" fügen Sie hinzu:

       adapter.resetCheckedCounter(); 

    Ich hoffe das hilft!

    Assign checkBoxCounter = 0 Inside onClick () -Funktion. Und aus Sicherheitsgründen können Sie Code wie folgt ändern, um zu vermeiden, checkBoxCounter von einem anderen Teil des Codes zu aktualisieren.

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

    Anstatt von counter = 0 müssen Sie checkBoxCounter = 0 innen löschen klicken Sie auf Listener

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.