2 Stimmen

Ich habe eine Suchleiste in meinen Einstellungen, um die Bildschirmhelligkeit zu aktualisieren. Gibt es eine Möglichkeit, die Benutzeroberfläche zu aktualisieren, um die Änderungen live zu sehen?

Die Suchleiste funktioniert überall gut, aber ich würde gerne sehen, dass die Änderungen in diesem Einstellungsbildschirm vorgenommen werden. Das Problem ist, dass die Suchleiste eine Einstellung ist, und daher kann ich nicht sharedpreferences tun und aktualisieren Sie es in der onProgressChanged-Methode.

Gibt es eine Möglichkeit, dies zu umgehen?

Ich stelle meine Helligkeit folgendermaßen ein:

    SharedPreferences prefs;
    prefs = PreferenceManager.getDefaultSharedPreferences(this);
    float sb = prefs.getInt("screenBrightness", 1);
    WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.screenBrightness = sb / 100.0f;
    getWindow().setAttributes(lp);

Aber ich kann das nicht in onProgressChanged verwenden, weil die Klasse Preference erweitert.

2voto

LuxuryMode Punkte 32625

Was Sie tun müssen, ist eine OnSharedPreferencesChanged Hörer wie onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) . Innerhalb Ihrer PreferenceActivity tun Sie dies:

SharedPreferences.OnSharedPreferenceChangeListener prefChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() { 
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
        if(key.equals("screenBrightness")) {
        //set brightness here
            float sb = sharedPreferences.getInt(key, 1);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness = sb / 100.0f;
            getWindow().setAttributes(lp);
        }
    }
};

und dann in onSharedPreferenceChanged können Sie die Taste verwenden, die Sie bisher benutzt haben, und die Helligkeit entsprechend einstellen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X