我有一个EditTextPreference定义为:
<EditTextPreference androID:defaultValue="8888" androID:key="someKey" androID:title="SomeString"androID:inputType="number" >
EditTextPreference在内部使用EditText,可以使用EditTextPreference.getEditText()获得.
我想限制用户可以输入1024到65535之间的整数范围的数字.我该怎么做?
我尝试使用inputFilter和TextWatcher都没有成功.
有任何想法吗?
您可能已经猜到我正在尝试验证输入网络端口.也许我应该为此使用其他类型的输入?
解决方法:
您可以使用EditText执行此 *** 作,但使用NumberPicker会更容易.
它具有您想要的预定义方法:setMinValue(int),setMaxValue(int).
寻求灵感:
import androID.content.Context;import androID.preference.DialogPreference;import androID.util.AttributeSet;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.NumberPicker;/* * Add this to your XML resource. */public class NumberPickerPreference extends DialogPreference { private NumberPicker numberPicker; public NumberPickerPreference(Context context, AttributeSet attrs) { super(context, attrs); } @OverrIDe protected VIEw onCreateDialogVIEw() { return generateNumberPicker(); } public NumberPicker generateNumberPicker() { numberPicker = new NumberPicker(getContext()); numberPicker.setMinValue(1025); numberPicker.setMaxValue(65535); numberPicker.setValue(1025); /* * Anything else you want to add to this. */ return numberPicker; } @OverrIDe protected voID onDialogClosed(boolean positiveResult) { super.onDialogClosed(positiveResult); if (positiveResult) { int port = numberPicker.getValue(); Log.d("NumberPickerPreference", "NumberPickerValue : " + port); } }}
总结 以上是内存溢出为你收集整理的android – 如何将EditTextPreference限制在1024:65535的范围内全部内容,希望文章能够帮你解决android – 如何将EditTextPreference限制在1024:65535的范围内所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)