Ang*_*ker 48 java android android-widget android-layout
我正在构建一个小型Android应用程序,用户将在EditText小部件中输入IP地址或主机名.90%的时间他们将输入IP地址,其余时间 - 主机名.
所以很自然地,我希望进行优化以便让他们轻松输入IP地址,但是切换到字母数字输入主机名的能力非常重要.
我似乎无法找到一个好的inputType.在numberDecimal最初似乎是个不错的射门,但只允许一个点.
理想情况下,我想从?123按下按钮的标准键盘开始.
我如何到达那里?
Bod*_*ous 55
尝试使用android:inputType="number",但也设置android:digits="0123456789.".适合我.
Mun*_*oor 21
这通过添加android:inputType ="number | numberDecimal"和android:digits ="0123456789"完美地使用数字和十进制键盘.
例
<EditText
android:id="@+id/ip_address"
android:inputType="number|numberDecimal"
android:digits="0123456789."
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
SKT*_*SKT 13
您可以使用自己的输入过滤器
final EditText text = new EditText(ServerSettings.this);
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
if (end > start) {
String destTxt = dest.toString();
String resultingTxt = destTxt.substring(0, dstart) +
source.subSequence(start, end) +
destTxt.substring(dend);
if (!resultingTxt.matches ("^\\d{1,3}(\\." +
"(\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3})?)?)?)?)?)?")) {
return "";
} else {
String[] splits = resultingTxt.split("\\.");
for (int i=0; i<splits.length; i++) {
if (Integer.valueOf(splits[i]) > 255) {
return "";
}
}
}
}
return null;
}
};
text.setFilters(filters);
Run Code Online (Sandbox Code Playgroud)
用这个 :
<EditText
android:id="@+id/txtIP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789."
/>
Run Code Online (Sandbox Code Playgroud)
<EditText
android:id="@+id/ip_address"
android:inputType="number|numberDecimal"
android:digits="0123456789."
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
为我工作
我认为你唯一的选择是..
EditText android:inputType="text" ... />
Run Code Online (Sandbox Code Playgroud)
您可以检查 IP 地址包含的 3 个点的文本
| 归档时间: |
|
| 查看次数: |
40158 次 |
| 最近记录: |