gpt4 book ai didi

android - 如何将 EditTextPreference 限制在 1024 :65535 范围内

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:17 25 4
gpt4 key购买 nike

我有一个 EditTextPreference 定义为:

<EditTextPreference 
android:defaultValue="8888"
android:key="someKey"
android:title="SomeString"
android:inputType="number"
>

EditTextPreference 在内部使用一个 EditText,它可以通过 EditTextPreference.getEditText() 获得。

我想将用户可以输入的数字限制在 1024 到 65535 之间的整数范围内。我该怎么做?

我尝试同时使用 InputFilter 和 TextWatcher 但没有成功。

有什么想法吗?

您可能已经猜到我正在尝试验证输入的网络端口。也许我应该为此使用其他类型的输入?

最佳答案

我自己回答这个问题,因为没有其他答案是我想要的。

final int minPort = 1024;
final int maxPort = 2048;

final EditTextPreference editTextPreference = (EditTextPreference)findPreferenceByResId(R.string.pref_telnet_server_port_key);

editTextPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
int val = Integer.parseInt(newValue.toString());
if ((val > minPort) && (val < maxPort)) {

Log.d(LOGTAG, "Value saved: " + val);
return true;
}
else {
// invalid you can show invalid message
Toast.makeText(getApplicationContext(), "error text", Toast.LENGTH_LONG).show();
return false;
}
}
});

通过这种方式,当用户输入无效数字并且不保存输入的值时,您会显示 toast 辞。这对我有用,而且比我无法实现的自定义 NumberPicker 首选项更简单。

关于android - 如何将 EditTextPreference 限制在 1024 :65535 范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com