2017-04-05 16 views
1

我有數字選擇器,我用字符串數組填充它。當數字選擇器第二次打開時突出顯示選中的項目

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」作爲選定的值。

你能幫我嗎?我怎樣才能做到這一點?

回答

3
npPowerSecond.setValue(2); 

使用setvalue進行設置。

0
npPowerSecond.setValue(selectedNumber); 

選擇值後,將值設置爲該號碼選取器。我認爲它會幫助你。

1

您必須將最後選擇的位置NumberPicker保存到SharedPreferences。在那之後,每次你打開NumberPicker,你應該使用設置默認選擇的位置爲它void setValue (int value)

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); 
} 
相關問題