我目前正在尝试弄清楚如何查看编辑文本变量的值。在我的代码中,我试图获取用户输入的数字并将数学应用于它以生成小费计算器。唯一的问题是,如果用户没有为 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());
添加回答
举报
0/150
提交
取消