Android使用AlertDialog阻止输入中除英语之外的其他语言

时间:2014-10-21 10:44:22

标签: android android-alertdialog

我有一个Android应用程序,用户必须使用带有AlertDialog的输入来输入他的名字,我想知道是否可以阻止用户输入除英语之外的其他语言。

enter image description here

这是我使用的代码:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input 
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
  Editable value = input.getText();
  // Do something with value!
  }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int whichButton) {
    // Canceled.
  }
});

alert.show();

}

3 个答案:

答案 0 :(得分:2)

尝试使用此属性,使用edittext

 android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

使用java代码

 editText.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));

答案 1 :(得分:0)

使用此

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});

答案 2 :(得分:0)

在XML文件中,你需要把它,

android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "

还要检查this