NumberPickerPreference

Deze library heb ik gemaakt omdat de standaard Android preferences niet aan mijn eisen voldoen. NumberPickerPreference is gebasseerd op de AndroidX support library en is te gebruiken vanaf Android 4.4 (API 19).

Documentatie om de library te kunnen gebruiken in je Android app is hier te vinden, of volg de meest recente documentatie op de GitHub pagina.

NumberPickerPreference voorbeeld
Repository

Voeg onderstaande toe aan je build.gradle (niet de module):

allprojects { repositories { ... maven { url "https://jitpack.io" } }}
Dependency

Voeg onderstaande toe aan je module build.gradle (controleer de laatste versie op de GitHub repository):

dependencies { ... implementation 'com.github.invissvenska:NumberPickerPreference:VERSION'}
Configuratie

Voeg de NumberPickerPreference toe aan je preferences.xml:

<nl.invissvenska.numberpickerpreference.NumberDialogPreference android:key="preference_key" android:title="Preference title" app:defaultValue="20" // optional, default is 0 app:numberPickerPreference_minValue="10" // optional, default is 0 app:numberPickerPreference_maxValue="60" // optional, default is 100 app:numberPickerPreference_unitText=" another quantity" /> // optional, default is ""

Laat je preference Fragment de PreferenceFragmentCompat class extenden en override de onDisplayPreferenceDialog methode. Voeg onderstaande code toe aan de methode:

public class SettingsFragment extends PreferenceFragmentCompat { private static final String DIALOG_FRAGMENT_TAG = "CustomPreferenceDialog"; // some other code @Override public void onDisplayPreferenceDialog(Preference preference) { if (preference instanceof NumberDialogPreference) { NumberDialogPreference dialogPreference = (NumberDialogPreference) preference; DialogFragment dialogFragment = NumberPickerPreferenceDialogFragment .newInstance( dialogPreference.getKey(), dialogPreference.getMinValue(), dialogPreference.getMaxValue(), dialogPreference.getUnitText() ); dialogFragment.setTargetFragment(this, 0); dialogFragment.show(getParentFragmentManager(), DIALOG_FRAGMENT_TAG); } else { super.onDisplayPreferenceDialog(preference); } }}

Bekijk de GitHub repository voor meer voorbeelden, de actuele documentatie en meest recente versies.