检测EditText是否仅包含小数点

时间:2013-12-07 03:44:29

标签: java android android-edittext

<EditText
    android:id="@+id/edtxt1"
    android:layout_below="@+id/txt1"
    android:layout_width="fill_parent"
    android:gravity="center_horizontal"
    android:maxLength="15"
    android:textColor="#ffffff"
    android:paddingTop="10dp"
    android:layout_marginLeft="30dp"
    android:background="@drawable/edittxt"
    android:inputType="numberDecimal"
    android:layout_centerInParent="true"
    android:layout_height="50dp" />

我有一个单位转换器应用程序。一切正常,但我唯一的问题是如果用户在EditText中只输入一个小数点"."并尝试将一个参数转换为另一个参数,应用程序崩溃!

如何检测是否只输入小数点(即没有数字;输入"."而不是"3.03"".3")。

我使用下面的代码来检测当用户尝试从一个参数转换为另一个参数时EditText是否为空,但它不适用于小数点。

if (cel1.matches(""))
{
    Toast.makeText(getApplicationContext(), "Enter the content!",
                                                         Toast.LENGTH_LONG).show();
}

3 个答案:

答案 0 :(得分:3)

检查只是小数点:

EditText et = (EditText)findViewById(R.id.edtxt1);
if (et.getText().toString().equals("."))
{
    // run your code here
}

使用您的代码:

if (cel1.equals("") || cel1.equals("."))
{
    Toast.makeText(getApplicationContext(), "Enter the content!",
                                                       Toast.LENGTH_LONG).show();
}

也许您想要将cel1.equals(".")更改为cel1.trim().equals(".")只是为了确保条件有效,即使其中也有空格。不过,我不确定你是否允许空格。

答案 1 :(得分:1)

您可以检查EditText中是否只有一个小数点:

//从EditText获取文本并检查它是否为点。

if (editText.getText().toString().equals("."))
{
    //display error message
}

答案 2 :(得分:0)

您可以查看:

正如你问的那样without the numbers,like "." is entered instead of "3.03" or ".3"

EditText edittext1=(EditText)findViewById(R.id.edtxt1)
String cel1= edittext1.getText().toString();

if (cel1.trim().length()!=0 && cel1.startsWith("[.]");)
{
    Toast.makeText(getApplicationContext(), "Wrong content here, please Try again!!",
                                                         Toast.LENGTH_LONG).show();
}