2017-05-28 5 views
0

Ich schreibe meine erste Android-App und es beinhaltet eine Vorliebe, wo Sie eine Anzahl von Minuten von 0 bis 60 einstellen. Ich habe eine SeekBarPreference verwendet, und es zeigt sich wie ein einfacher Schieberegler, den Sie tatsächlich rutschen können Bearbeiten Sie den Wert. Die Präferenz funktioniert gut.Wie stelle ich showSeekBarValue in Android auf true ein?

Ich möchte den ausgewählten Wert neben der SeekBar (oder irgendwo in der Nähe) anzeigen, da der Benutzer standardmäßig nicht sehen kann, was er tatsächlich ausgewählt hat. Es gibt viele Fragen auf Stack-Überlauf über Ähnliche Schieber und Vorlieben, aber seit Version 25.1.0, veröffentlichte im Dezember letztes Jahr, gibt es SeekBarPreference, was genau das, was ich brauche ist:

Die seekbar Wert Ansicht angezeigt werden kann, oder deaktiviert, indem das Attribut showSeekBarValue auf "True" bzw. "False" gesetzt wird.

Aber unter den öffentlichen Methoden, die unten aufgeführt sind, gibt es keine Methode zum Setzen showSeekBarValue? Es gibt eine Methode zum Setzen des adjustable Attributs, setAdjustable(boolean adjustable), jedoch?

Idealerweise würde ich einfach android:showSeekBarValue="true" in meinem SeekBarPreference Tag in preferences.xml schreiben, aber das (offensichtlich) funktioniert nicht.

Also auf den Punkt gebracht: Wie setze ich showSeekBarValue auf wahr?

Antwort

0

In der build.gradle App hatte ich

implementation 'com.android.support:preference-v7:26.+ 

dann hinzufügen, ändern Sie den XML-PreferenceScreen des einen App-Namespace enthalten:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> 

schließlich in der xml, können Sie add

<SeekBarPreference 
    android:key="..." 
    android:title="..." 
    android:max="100" 
    android:min="0" 
    android:defaultValue="30" 
    android:dependency="..." 
    app:showSeekBarValue="true" 
    /> 

Dies kompiliert ohne Fehler. Um fair zu sein, ist dies keine vollständige Antwort, da in meinem Fall auch nach diesen Schritten kein Wert angezeigt wird. Aber formal lässt es Sie den Wert in irgendeiner Weise setzen.

+0

Ja, ich habe bereits einen SeekBarPreference verwendet - es funktioniert gut, außer dass kein Wert angezeigt wird. Tut mir leid, aber diese Antwort ist für mich in keiner Weise hilfreich. Ich weiß deine Bemühungen zu schätzen! –

+0

Das habe ich mir gedacht. Da es zu lang für einen Kommentar war, entschied ich mich, es dennoch als Antwort zu posten, in der Hoffnung, dass jemand es ändern kann, um endlich eine funktionierende SeekBarPreference zu erhalten, für die Sie bei jeder Änderung nicht setTitle() aufrufen müssen, um den Wert zu reflektieren. .. – wessel

Verwandte Themen