Android验证EditText小数点“。”

时间:2012-01-06 18:29:37

标签: android validation android-edittext

我正在对两个EditText字段的值进行一些数学计算,我希望对它们进行以下验证:

  1. 他们不是空的。
  2. 它们彼此有效(如果第一个字段是整数,则第二个字段应该相同,如果第一个字段是十进制,则第二个字段应该相同)。
  3. 我无法弄清楚如何验证小数值或特别是小数点。

    我试过这个,但它没有用。我的应用程序崩溃了。

        if (editText1.getText().toString().equals(".") || editText2.getText().toString().equals(".")) 
        return;
    

4 个答案:

答案 0 :(得分:0)

对于十进制值,您可以使用:

EditText et = (EditText) findViewById(R.id.myTextView) ;   

et.setInputType(0x00002002);

它只接受十进制值。

Another solution is here

答案 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)。如果是,则表示输入无效。

顺便说一句,如果您向用户提供视觉提示以通知他们输入无效,那就太好了。而不是等到用户按下“计算”按钮,然后只告诉他们。