我正在android中创建一个具有电话号码字段的注册页面。 此编辑文本应仅接受大于6的数字,即(7,8或9)作为第一个字符,如果用户输入的数字小于7,则应弹出错误,不应接受该数字。 任何帮助将不胜感激。 提前致谢
在下面粘贴我的代码。
private void numvalidate() {
et5.addTextChangedListener( new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
@Override
public void afterTextChanged(Editable editable) {
Forlessvalues();
}
private String Forlessvalues() {
if (et5.getText().length() == 1 && et5.getText().length() < 10) {
String x = et5.getText().toString();
if (!(x.equals( "7" ) || x.equals( "8" ) || x.equals( "9" ))) {
et5.setError( "Enter Numbers starting with 7,8 or 9" );
return null;
}
}
return null;
}
} );
}
答案 0 :(得分:0)
使用正则表达式
声明字符串变量
String strExpression = "^[789]\\d{9}$";
if(!yourEdittext.getText().toString().matches(strExpression){
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setIcon(R.drawable.information);
alertDialog.setTitle("Information");
alertDialog.setMessage("Please provide valid mobile number.");
alertDialog.setButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//dismiss the dialog
}
});
alertDialog.show();
}
答案 1 :(得分:0)
@Override
public void afterTextChanged(Editable editable) {
if(et5.getText().length()==1){
if(et5.getText().toString().startsWith("7") ||
et5.getText().toString().startsWith("8") ||
et5.getText().toString().startsWith("9")){
}else{
te5.setText("");
et5.setError( "Enter Numbers starting with 7,8 or 9" );
}
}
}
最简单的方法。 希望这有帮助。
答案 2 :(得分:0)
private void numvalidate() {
et5.addTextChangedListener( new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
@Override
public void afterTextChanged(Editable editable) {
Forlessvalues();
}
});
}
在Forlessvalues()
方法之外使用方法numvalidate()
。
private String Forlessvalues() {
if (et5.getText().length() > 0 && et5.getText().length() < 10) {
if (et5.getText().toString().startsWith("7") ||
et5.getText().toString().startsWith("8") ||
et5.getText().toString().startsWith("9")) {
// Code for accept data and return String
} else {
et5.setError( "Enter Numbers starting with 7,8 or 9" );
return null;
}
}
return null;
}