我正在尝试实现一个EditText,它只将输入限制为alpha字符[A-Za-z].
我从这篇文章开始使用InputFilter方法.当我输入"a%"时,文本消失,如果我按退格键,则文本为"a".我已经尝试了过滤器功能的其他变体,比如使用正则表达式只匹配[A-Za-z],有时会看到像重复字符这样的疯狂行为,我会输入"a"然后"b"并获得"aab"然后键入"c"并获取"aabaabc"然后点击退格并获得"aabaabcaabaabc"!
这是我到目前为止使用的代码,我尝试过不同的方法.
EditText input = (EditText)findViewById( R.id.inputText );
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter( CharSequence source, int start, int end, Spanned dest, int dstart, int dend ) {
//String data = source.toString();
//String ret = null;
/*
boolean isValid = data.matches( "[A-Za-z]" );
if( isValid ) {
ret = null;
}
else {
ret = data.replaceAll( "[@#$%^&*]", "" );
}
*/
/*
dest = new SpannableStringBuilder();
ret = data.replaceAll( "[@#$%^&*]", "" );
return …Run Code Online (Sandbox Code Playgroud) 我有以下EditText:
<EditText
android:id="@+id/ip"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="numberDecimal">
</EditText>
Run Code Online (Sandbox Code Playgroud)
我想用它来获取IP地址.但它不允许我键入'.' (句点符号)不止一次因为inputtype设置为numberDecimal.关于如何获得多个"."的任何建议.同时将inputType设置为数字.