2016-04-29 4 views
1

Ich lernte vor kurzem benutzerdefinierte Adapter-Konzepte.Android: Dynamisch zeigen alle Kontrollkästchen in Adapter OnLongClick

Problem ist während onlongKlick in einer Zeile, Ich möchte Kontrollkästchen in der langgestrichenen Zeile, die in android:visibility="gone" anfänglich ist, überprüft werden. Außerdem können Sie Kontrollkästchen in anderen Zeilen anzeigen, auf die nicht im deaktivierten Status geklickt wird.

Ich habe hier einige Teile dieses Codes geändert. http://windrealm.org/tutorials/android/listview-with-checkboxes.php

In simplerow.xml machte ich android:visibility="gone" zunächst.

Jetzt habe ich eine onLongClickListener innerhalb getView(...) Methode

textView.setOnLongClickListener (new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View v) { 
     CheckBox cb = (CheckBox) v; 
     Planet planet = (Planet) cb.getTag(); 
     planet.setVisibility(View.VISIBLE); 
     planet.setChecked(true); 
    } 
}); 

nun der obige Code nur die longClicked Reihe beeinflussen. Wie führe ich Änderungen in den nicht angeklickten Zeilen durch?

Aufruf von notifyDataSetChanged() auf langen Klick hat nicht funktioniert, da die anderen Zeilen Kontrollkästchen zunächst in android:visibility="gone" haben.

Bitte helfen. Ist eine andere Arbeit möglich?

Antwort

0

ListView wird mit Adapter geliefert. Alle Ihre Modellelemente würden über die implementierte Methode getView von Adapter in die Ansichtselemente aufgebläht werden. Wenn Sie die Ansicht aktualisieren möchten, ohne die Daten zu ändern, rufen Sie anschließend notifyDataSetChanged auf.