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

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


else


//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());


侃侃尔雅
浏览 228回答 1
1回答

慕森王

这是推测,但看起来当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 valueelse userAmount = Double.parseDouble(text.toString());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java