【问题标题】:Trying to parse a a user input and format it as a phone number尝试解析用户输入并将其格式化为电话号码
【发布时间】:2017-12-20 11:29:15
【问题描述】:

我正在尝试将来自数字类型的 EditText 的用户输入解析为电话号码,但其格式不正确。在用于拨打该号码的操作中,它告诉我该号码无效。此代码是否正确解析了调用意图?

LayoutInflater inflater = LayoutInflater.from(PbfSampleApplication.this); 
View v = inflater.inflate(R.layout.activity_main, null); 
EditText innerView = (EditText)v.findViewById(R.id.number); 
String actualnum="tel:"+innerView.getText().toString().trim();

【问题讨论】:

  • 那么从对toString() 的调用返回的实际“数字”是多少?
  • 在您的 Xml 文件中将此属性添加到 EditText 字段 android:inputType="number" 。然后用户只能输入整数值,然后您可以简单地使用 String.valueOf(innerView)
  • 这实际上让我最接近,但现在它调用了一些 android 小部件 EditText 值而不是输入的数字本身。这是怎么回事?

标签: android string parsing android-edittext


【解决方案1】:

我建议你尝试:

String.valueOf(innerView.getText()); 

代替:

toString()

【讨论】:

    【解决方案2】:

    您可以使用以下代码验证手机号码:

     private boolean isValidPhone(String s) {
        String expression = "^[7-9]{1}[0-9]{9}$";
        CharSequence inputString = s;
        Pattern pattern = Pattern.compile(expression);
        Matcher matcher = pattern.matcher(inputString);
        if (matcher.matches())
        {
            return true;
        }
        else{
            return false;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-14
      • 2023-04-03
      • 2022-11-30
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多