EditText只接受几个字符

时间:2016-03-16 04:54:10

标签: java android xml android-layout android-edittext

我需要在Android上实现EditText,它只接受特定范围的字符,即:“S,A,Q,W,R,B,C,D,E,U”。< / p>

7 个答案:

答案 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" />