我正在对两个EditText
字段的值进行一些数学计算,我希望对它们进行以下验证:
我无法弄清楚如何验证小数值或特别是小数点。
我试过这个,但它没有用。我的应用程序崩溃了。
if (editText1.getText().toString().equals(".") || editText2.getText().toString().equals("."))
return;
答案 0 :(得分:0)
对于十进制值,您可以使用:
EditText et = (EditText) findViewById(R.id.myTextView) ;
et.setInputType(0x00002002);
它只接受十进制值。
答案 1 :(得分:0)
首先,您要将输入类型设置为接受小数和/或数字。
您可以在xml布局中进行设置:
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal|number"
/>
然后您可以将EditText文本转换为double:
double result = new Double(editText1.getText().toString());
或
double result = Double.valueOf(editText1.getText().toString());
此后不再需要你想要的火箭科学了。
答案 2 :(得分:0)
您可以使用contains()方法检查您的字符串是否包含您提供的参数
if (textView1.getText().toString().contains(".") || textView2.getText().toString().contains(".")) {
Toast.makeText(getApplicationContext(), "Wrong Values", Toast.LENGTH_LONG).show();
答案 3 :(得分:0)
您可以尝试使用Float.parseFloat解析某些内容是否为有效值,并查看它是否抛出NumberFormatException(通过try / catch)。如果是,则表示输入无效。
顺便说一句,如果您向用户提供视觉提示以通知他们输入无效,那就太好了。而不是等到用户按下“计算”按钮,然后只告诉他们。