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?
Vielleicht könnten Sie ein android:key
-Attribut sowohl für Ihre SwitchPreference- als auch für Ihre CheckBoxPreference-XML setzen, einfach so:
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.
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% 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 .:
was dann etwas wie:
erlauben würde %Vor%und beseitigen Sie die Notwendigkeit, API-Ebene im Code zu überprüfen.
Tags und Links java android xml android-preferences