SwitchPreference und CheckBoxPreference im Code

8

Ich erstelle jetzt eine Einstellungsseite für meine App

Nach API-14 ist Switchpreferenz verfügbar. und ich möchte es verwenden, um checkboxreference auf API14 + Geräten

zu ersetzen

Es ist einfach, res/xml und res/xml-14 zu verwenden, um die richtige XML-Ressource zu erhalten

Im Codierungsteil ist es jedoch nicht so bequem, die Präferenz gemäß der API zu wechseln.

%Vor%

Nun kann ich mit if-clause die Build.VERSION überprüfen und das entsprechende Objekt zur Verarbeitung bekommen. Aber es ist ziemlich umständlich und schwer, den Code zu verwalten. Hat jemand einen klügeren Weg, es zu tun?

    
Chiman 24.08.2013, 02:18
quelle

3 Antworten

12

Vielleicht könnten Sie ein android:key -Attribut sowohl für Ihre SwitchPreference- als auch für Ihre CheckBoxPreference-XML setzen, einfach so:

%Vor%

und

%Vor%

Und dann können Sie überprüfen, ob dieser Schlüssel in Ihrem Code wahr oder falsch zurückgibt, etwa so:

%Vor%

Hoffe, das funktioniert für dich.

    
Renan Ferrari 24.08.2013 02:46
quelle
6

Verwenden Sie in Ihrem Java-Code TwoStatePreference , was eine Elternklasse für beide% ist. co_de% und CheckBoxPreference . Es hat alle Methoden, die Sie wahrscheinlich in Ihrem Anwendungsfall benötigen.

So würde das von Ihnen bereitgestellte Codebeispiel aussehen:

%Vor%     
AleXqwq 11.04.2015 13:32
quelle
1

Je nachdem, was der Code mit der Präferenzinstanz machen möchte, kann es einfach sein, in Preference anstatt in einen bestimmten abgeleiteten Typ zu konvertieren, z. B .:

%Vor%

was dann etwas wie:

erlauben würde %Vor%

und beseitigen Sie die Notwendigkeit, API-Ebene im Code zu überprüfen.

    
Mark Larter 04.09.2013 03:27
quelle