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

最佳答案

仅检查小数点:

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(".")只是为了确保条件有效,即使其中也有空格也是如此。不过,我不确定您是否首先允许使用空格。

10-07 13:57
查看更多