电话号码字段只应接受大于7的数字作为ANDROID中的第一个字符

时间:2016-08-23 12:49:29

标签: android android-studio

我正在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;
}
} );
}

3 个答案:

答案 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;
}