isChecked () verhält sich genau entgegengesetzt in 2.3.6 & 4.2 android-Versionen

8

Ich entwickle eine einfache Android-App, die ein ListView mit einer Checkbox wie folgt erstellt:

%Vor%

Das ist wirklich seltsam. Wie wird die App jemals mit beiden Versionen kompatibel sein, wenn sie komplett entgegengesetzte Prüfungen erfordern?

Bitte lassen Sie mich wissen, wie ich damit umgehen kann. Jede Hilfe wird geschätzt.

    
Tinniam V. Ganesh 19.12.2012, 06:59
quelle

3 Antworten

3

Ich kenne das Problem, bei neueren Frameworks wurde der onItemClick -Aufruf vor dem checkd-Attribut des Kontrollkästchens geändert!

Ich überprüfe den aktivierten Zustand meiner Kontrollkästchen nach dem Klicken auf das Element (z. B. beim Schließen der Aktivität oder beim Klicken auf die Schaltfläche "Speichern").

schau auf list.getCheckedItemPositions() ... es wird ein SparseBooleanArray zurückgeben, das du benutzen kannst!

EDIT: Beispiel

%Vor%     
silly 19.12.2012, 07:10
quelle
2

Das Problem kann durch Überprüfen der Version des Geräts behoben werden.

In der Dokumentation wird empfohlen, Build.VERSION.SDK_INT anhand der Werte in Build.VERSION_CODES zu überprüfen.

Beispiel Verwendung

%Vor%

Ссылка

(Mehr wie ein Hack, aber eine Lösung)

    
cjds 19.12.2012 07:17
quelle
0

Sie können auch versuchen, etwas wie folgt zu verwenden:

%Vor%

Als Ergebnis haben Sie ein Flag checked , das angibt, wie der Status des Elements nach dem Klick aussieht.

    
Tapemaster 08.10.2014 14:05
quelle

Tags und Links