jag*_*ish 49 android character android-softkeyboard android-edittext
我正在开发一个键盘应用程序,但我正在解决一个问题.我想以编程方式在android中的EditText中限制/阻止软键盘中的某些特殊字符.
那么,有没有什么办法可以限制android中编辑文本中的任何特殊字符输入.
如果有人有想法,请回复.
提前致谢.
Bir*_*dia 80
试试这个可能适合你
public class MainActivity extends Activity {
private EditText editText;
private String blockCharacterSet = "~#^|$%&*!";
private InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source != null && blockCharacterSet.contains(("" + source))) {
return "";
}
return null;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText.setFilters(new InputFilter[] { filter });
}
}
Run Code Online (Sandbox Code Playgroud)
Sol*_*nya 24
这应该工作:
InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (!Character.isLetterOrDigit(source.charAt(i))) {
return "";
}
}
return null;
}
};
edit.setFilters(new InputFilter[]{filter});
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢简单的方法:
<EditText android:inputType="text" android:digits="0123456789*,qwertzuiopasdfghjklyxcvbnm" />
Run Code Online (Sandbox Code Playgroud)
Thi*_*dav 21
如果要添加空格,可以在最后一位数后添加空格.
android:digits="0123456789qwertzuiopasdfghjklyxcvbnm "
Run Code Online (Sandbox Code Playgroud)
它为时已晚,但可能对其他人有所帮助。您可以使用xml属性来代替programaticaly。可能的情况是,在“单一”布局中,您有许多editText,而您只想在一个EditText中限制特殊字符。因此,在xml中定义将对您有所帮助。这是通过限制特殊字符的代码,允许它们仅输入字母和数字,如下所示
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/text10"
android:singleLine="true"
android:maxLines="1"
android:maxLength="16"
android:digits="abcdefghijklmnopqrstuvwxyz0123456789"/>
Run Code Online (Sandbox Code Playgroud)
对于那些在添加空间时可能遇到问题的人,请添加一个包含所有字母的空格。下面是一个示例 另外,您应该知道在这种情况下用户将无法添加新行。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:digits="0123456789,a bcdefghijklmnopqrstuvwxyz"
android:maxLines="1"
android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud)
小智 5
首先需要添加DigitsKeyListener以允许字符,然后将RawInputType设置为edittext字段
edit_field.setKeyListener(DigitsKeyListener.getInstance("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
edit_field.setRawInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60046 次 |
| 最近记录: |