23 private int bounds_min, bounds_max, bounds_default;
33 super(context, attrs);
39 super(context, attrs, defStyle);
43 private void init(Context context, AttributeSet attrs)
48 context.obtainStyledAttributes(attrs, R.styleable.IntEditTextPreference, 0, 0);
50 array.getInt(R.styleable.IntEditTextPreference_bounds_min, Integer.MIN_VALUE);
52 array.getInt(R.styleable.IntEditTextPreference_bounds_max, Integer.MAX_VALUE);
53 bounds_default = array.getInt(R.styleable.IntEditTextPreference_bounds_default, 0);
58 bounds_min = Integer.MIN_VALUE;
59 bounds_max = Integer.MAX_VALUE;
64 public void setBounds(
int min,
int max,
int defaultValue)
68 bounds_default = defaultValue;
71 @Override
protected String getPersistedString(String defaultReturnValue)
73 int value = getPersistedInt(-1);
74 if (value > bounds_max || value < bounds_min)
75 value = bounds_default;
76 return String.valueOf(value);
79 @Override
protected boolean persistString(String value)
81 return persistInt(Integer.parseInt(value));
84 @Override
public void setText(String text)
86 String valueToSave = getText();
90 int parsed = Integer.parseInt(text);
91 if (parsed >= bounds_min && parsed <= bounds_max)
96 catch (Exception ignored)
100 if (valueToSave ==
null)
102 valueToSave = String.valueOf(bounds_default);
105 super.setText(valueToSave);