Выделите выбранный элемент из средства выбора номера, когда оно откроется во второй раз

У меня есть средство выбора чисел, и я заполняю его массивом строк.

final String[] power = {"0.00", "0.25", "0.50", "0.75","1.00"};
npPowerSecond.setMinValue(0);
npPowerSecond.setMaxValue(power.length - 1);
npPowerSecond.setDisplayedValues(power);

Я отображаю значения, как указано выше. Когда я открываю средство выбора номеров, в качестве выбранного значения отображается «0,00». Теперь я выбираю "0,50". Теперь, когда я открою средство выбора чисел, оно должно отображать «0,50» в качестве выбранного значения.

Не могли бы вы мне помочь? Как я могу этого добиться?


person Community    schedule 05.04.2017    source источник


Ответы (3)


npPowerSecond.setValue(2);

используйте setvalue для установки.

person Hasmukh kachhatiya    schedule 05.04.2017

Вы должны сохранить последнюю выбранную позицию от NumberPicker до SharedPreferences. После этого каждый раз, когда вы открываете NumberPicker, вы должны установить для него позицию по умолчанию, используя void setValue (целое значение)

final String[] power = { "0.00", "0.25", "0.50", "0.75s", "1.00s" };
NumberPicker numberPicker = (NumberPicker) findViewById(R.id.numberPicker);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(power.length - 1);
numberPicker.setDisplayedValues(power);
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        // any time your number picker change, we will save it to SharedPreferences
        saveIntToSharedPreferences(mContext, PREF_NUMBER_PICKER_LAST_SELECTED_POSITION, newVal);
    }
});
// when we open screen, we will select the last selected value by use setValue(...) 
numberPicker.setValue(
        getIntFromSharedPreferences(mContext, PREF_NUMBER_PICKER_LAST_SELECTED_POSITION));

Вспомогательная функция для сохранения/получения целого числа из SharedPreferences

private void saveIntToSharedPreferences(Context context, String key, int value) {
    SharedPreferences sharedPreferences =
            PreferenceManager.getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt(key, value);
    editor.apply();
}

private int getIntFromSharedPreferences(Context context, String key) {
    SharedPreferences sharedPreferences =
            PreferenceManager.getDefaultSharedPreferences(context);
    return sharedPreferences.getInt(key, 0);
}
person Linh    schedule 05.04.2017

npPowerSecond.setValue(selectedNumber);

после выбора значения установите значение для этого средства выбора номера. Я думаю, это поможет вам.

person Palanivelraghul    schedule 05.04.2017