我需要在Android上实现EditText
,它只接受特定范围的字符,即:“S,A,Q,W,R,B,C,D,E,U”。< / p>
答案 0 :(得分:7)
在EditText
android:maxLength="1"
android:digits = "SABCDEU"
答案 1 :(得分:4)
只需使用属性android:maxLength="1"
,这将只允许一个字符输入到edittext。
您可以使用android:digits
属性并在XML中指定适合您的有效字符。
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:digits = "SABCDEU"
android:maxLength="1" >
答案 2 :(得分:0)
是,如下:
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:digits="SABCDEU"
android:maxLength="1" >
答案 3 :(得分:0)
如果要设置edittext应接受的最大字符数,请使用:
android:maxLength="1"
如果你想设置特定字符,edittext应该接受然后使用:
android:digits = "character you want to accept"
在你的情况下:
android:digits = "SABCDEU"
请注意,除了SABCDEU之外,edittext不接受数字字符,空格,小写字母和大写字母。如果您想要输入编辑文本,则必须将所有字符放在android:digits=""
中。
答案 4 :(得分:0)
只需在Java中添加这段代码
即可
public class MainActivity extends Activity {
private EditText editText;
private String blockCharacterSet = "~#^|$%&*!FGHIJKLMOPTWXYZ";
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 });
}
}
这会给你你想要的。这将让您只选择“S,A,Q,W,R,B,C,D,E,U”。
答案 5 :(得分:0)
您应该使用InputFilters
edittext.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
if(src.toString().matches("[a-zA-Z ]+")){
return src;
}
return "";
}
}});
答案 6 :(得分:0)
使用此代码,它只允许使用字符
<EditText
android:inputType="text"
android:digits="SAQWRBCDEU"
android:hint="Only letters allowed" />