我正在创建一个表单,用户必须输入名称而不包含数字或其他字符。
部分代码是:
bSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String tampSalesName = salesName.getText().toString();
String lala = cekHuruf(tampSalesName);
if(lala.equals("number")){
Toast.makeText(RegisterSales.this, "Name must letters", Toast.LENGTH_SHORT).show();
}
public String cekHuruf(String a){
String zzzz="";
String aaa="";
int ab=0;
for (int i = 0; i < a.length(); i++) {
int abc = i++;
aaa= a.substring(i, abc);
try {
ab = Integer.parseInt(aaa);
} catch (NumberFormatException sdef) {
// TODO: handle exception
zzzz="number";
}
}
return zzzz;
}
它将打开String.class并显示错误:
private StringIndexOutOfBoundsException startEndAndLength(int start, int end) {
throw new StringIndexOutOfBoundsException(this, start, end - start);
}
逻辑:如果第一个单词是字母,它将始终夯实字母。因此,您对edittext的建议必须要明确。我已经尝试过多种方法来更改xml中的输入类型,并尝试在android EditText alphabet-only validation中使用method,但是仍然无法正常工作。
最佳答案
使用此代码
name.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
Is_Valid_Person_Name(name); // pass your EditText Obj here.
}
});
public void Is_Valid_Person_Name(EditText edt) throws NumberFormatException {
if (edt.getText().toString().length() <= 0) {
edt.setError("Accept Alphabets Only.");
valid_name = null;
} else if (!edt.getText().toString().matches("[a-zA-Z ]+")) {
edt.setError("Accept Alphabets Only.");
valid_name = null;
} else {
valid_name = edt.getText().toString();
}
}
我会帮你的。
关于android - Android:验证Edittext必须字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25601534/