为了账号安全,请及时绑定邮箱和手机立即绑定

将 EditText 引用为字符串

将 EditText 引用为字符串

慕莱坞森 2021-11-17 14:47:04
我构建了一个简单的应用程序,其中包含一个方法,这个应用程序应该检查用户插入的电话号码是否有效。所以我做了以下步骤:在java文件中声明编辑文本将变量引用到xml文件中的变量获取文本和字符串到这个变量编写引用“phone”变量的方法声明(步骤1):private static EditText phone_et_c参考(第 2 步):phone_et_c=(EditText) findViewById(R.id.phone_et_c);获取文本和字符串(步骤 3):String phone=phone_et_c.getText().toString();和mathhoud是(步骤4):public static boolean isValid(String phone){    if ((phone.length()==10)||(phone.charAt(0)==0&&phone.charAt(1)==5)){        return true;    }    else        return false;}我的错误是:10-14 10:06:05.885 5140-5140/com.miara.yagel.maspera E/AndroidRuntime:致命异常:主进程:com.miara.yagel.maspera,PID:5140 java.lang.StringIndexOutOfBoundsException:length=0;index=0 at java.lang.String.charAt(Native Method) at com.miara.yagel.maspera.CreatUserActivity.isValid(CreatUserActivity.java:69) at com.miara.yagel.maspera.CreatUserActivity$1.onClick(CreatUserActivity.爪哇:谢谢!
查看完整描述

3 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

我在其他 naswer 中搜索,发现: EditText getText() 返回空字符串

似乎我应该在 Onclick 按钮内写第 3 步。我知道初级错误是我的坏事,谢谢大家


查看完整回答
反对 回复 2021-11-17
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

更改您的验证方法,以便它检查空值并在必要时修剪文本:


public static boolean isValid(String phone) {

    String str = phone.trim();

    int len = str.length();

    return ((len > 0) && ((len == 10)||(str.charAt(0) == 0 && str.charAt(1) == 5)));

}


查看完整回答
反对 回复 2021-11-17
?
弑天下

TA贡献1818条经验 获得超8个赞

问题是您的 EditText 的长度为 0。因此,当您将其转换为 String 时,您的 String 的长度也为 0。所以 indexOf(0) 会抛出一个异常,因为你的 String 是空的。使用像 isEmpty() 这样的方法首先检查它是否为空,然后迭代关于索引。


查看完整回答
反对 回复 2021-11-17
  • 3 回答
  • 0 关注
  • 274 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信