Die benutzerdefinierte Listenansicht mit nur einem Kontrollkästchen wird einzeln ausgewählt

7

Ich habe eine benutzerdefinierte Listenansicht, in der jede Zeile ein Kontrollkästchen und einen Text enthält. Nun, was ich will, dass, wenn eine Checkbox der Listview-Zeile aktiviert ist, so dass andere Checkbox in einer anderen Zeile, wenn aktiviert, wird automatisch gelöscht werden. (dh nur eine Checkbox sollte einzeln ausgewählt werden) .wie sollte ich das tun.

Bisher habe ich Folgendes getan:

%Vor%     
abh22ishek 24.11.2014, 12:46
quelle

6 Antworten

12

Sie müssen den ausgewählten Gegenstand und Code entsprechend verfolgen.

%Vor%     
SweetWisher ツ 24.11.2014, 12:53
quelle
4

Versuchen Sie, alle Elemente zu ändern boolean false false Ausgewähltes Element nach notify adapter ausschließen und auch ViewHolder Entwurfsmuster für ListView-Leistung:

%Vor%     
Haresh Chhelana 24.11.2014 13:06
quelle
1

Pflegen Sie eine Variable:

%Vor%

Immer wenn Sie versuchen, ein Kontrollkästchen zu aktivieren, überprüfen Sie diese Variable, wenn es -1 ist, aktivieren Sie das Kontrollkästchen und speichern Sie die Position des Listenelements in der geprüften Variablen, wenn Sie versuchen, ein anderes Kontrollkästchen erneut zu überprüfen, wenn die Variable ain ' t gleich -1, deaktivieren Sie zunächst das Kontrollkästchen an der Position, die in der geprüften Variablen gespeichert ist, und aktivieren Sie dann das Kontrollkästchen an der aktuellen Position und speichern Sie die aktuelle Position in der geprüften Variablen

    
Sarthak Mittal 24.11.2014 12:50
quelle
1
%Vor%     
abh22ishek 24.11.2014 13:25
quelle
1

Einfache Pflege Ihrer Auswahl Holen Sie sich Ihre Auswahl aus dem Modell.

%Vor%

Bereiten Sie Ihre Ansicht so vor:

%Vor%

Setzen Sie jetzt in Ihrer Aktivität oder im Fragment den Adapter und tun Sie etwas wie folgt:

%Vor%

Beachten Sie, dass Ihre gesamte Arbeit von adpt.notifyDataSetChanged() erledigt wird. Hoffe, das hilft.

    
Pranjal Choladhara 16.02.2017 06:30
quelle
1

Das Arbeiten mit getView (wie die meisten der geposteten Antworten) funktionierte bei mir nicht richtig. Es war nicht reaktionsschnell genug. Manchmal wurde das vorherige Kontrollkästchen deaktiviert, manchmal nicht.

Das hat perfekt für mich funktioniert:

Zuerst müssen wir die Position aller zuvor markierten Checkboxen speichern:

%Vor%

Im onItemClick-Listener deaktivieren wir die Kontrollkästchen all , bevor wir das ausgewählte Kontrollkästchen aktivieren.

%Vor%     
Geoffroy CALA 13.12.2017 23:41
quelle

Tags und Links