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

无法识别 EditText 变量的值(appcompat 错误)并成功转换编辑文本

无法识别 EditText 变量的值(appcompat 错误)并成功转换编辑文本

侃侃尔雅 2021-11-24 14:39:53
我目前正在尝试弄清楚如何查看编辑文本变量的值。在我的代码中,我试图获取用户输入的数字并将数学应用于它以生成小费计算器。唯一的问题是,如果用户没有为 Edit Text 变量输入任何要初始化的值,则 Edit Text 变量的值不是空的,甚至不是空字符串,而是此处列出的异常长的代码行: android.support。 v7.widget.AppCompatEditText{1b372dd VFED..CL. ......一世。0,0-0,0 #7f07009b app:id/userInput}这是名为 userInputAmount 的 Edit Text 变量的值,该变量是使用带有参数 (R.id.userInput) 的 findViewById 方法初始化的但是,当我尝试使用带参数的 Double.parseDouble 方法(userInputAmount.getText().toString())将该编辑文本变量userInputAmount的值绑定到双值userAmount时,会发生错误我需要实际确定 EditText 值的原因是,我可以制作一个绕过双重转换的逻辑门,这样它就不会使我的应用程序崩溃。我想做的是这个if(editTextVariable != null && editTextVariable != "")//Do the double conversionelse//set the double variable equal to 0 so it wont crash the app. TLDR:如果值为android.support.v7.widget.AppCompatEditText{1b372dd VFED..CL,我需要找出 Edit Text 的值,以便创建一个逻辑门来绕过转换。......一世。0,0-0,0 #7f07009b app:id/userInput} 如果值为那个,我也不想将编辑文本变量初始化为那个。我想也许在初始化之前用 if 语句检查 xml 引用 (userInput) 的值,但我不知道如何这样做。此语句发生错误userAmount = Double.parseDouble(userInputAmount.getText().toString());
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

这是推测,但看起来当getText()返回 null 时,Java 会调用toString()EditText 本身。您看到的是 EditText 实例的 String 表示(它是 AppCompat,因为您使用的是 AppCompatActivity)。


而不是使用


userAmount = Double.parseDouble(userInputAmount.getText().toString());

您应该检查空/空状态:


Editable text = userInputAmount.getText();

if (text == null || text.toString.length < 1) userAmount = 0; //or whatever you want as the default value

else userAmount = Double.parseDouble(text.toString());


查看完整回答
反对 回复 2021-11-24
  • 1 回答
  • 0 关注
  • 227 浏览

添加回答

举报

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