如何在EditText中输入数字(双精度)

11

我使用这段代码

 <EditText
     android:id="@+id/price_for_liter_value_edit_text"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="@android:color/transparent"
     android:textColor="@color/dn_14_date"
     android:fontFamily="sans-serif-regular"
     android:textSize="18sp"
     android:text=""
     android:padding="4dp"
     android:inputType="number"/>

并且在这一行,我设置了inputType:

  android:inputType="number"

但是我无法输入带有小数点或破折号的双精度数(例如1.3或20.5)。 在inputFormat中应该使用哪种类型?


2
使用 android:inputType="numberDecimal" - Piyush
@PG_Android 两种解决方案都可行。 - Rahul Gupta
3个回答

38

您可以使用

  android:inputType="numberDecimal"

11
你可以查看此参考文献,了解允许的inputType的所有变化。在你的情况下。
android:inputType="numberDecimal"
或者
int type = InputType.TYPE_CLASS_NUMBER |  InputType.TYPE_NUMBER_FLAG_DECIMAL;

((EditText)findViewById(R.id.price_for_liter_value_edit_text)).setInputType(type);

6
对于Edittext,有一个属性digits:-
 android:digits="0123456789." 

如果设置了此参数,将指定此TextView具有数字输入方法,并且这些特定字符是它将接受的内容。这将仅允许在文本视图中添加数字和“.”。

需要解决的问题是,如果您在EditText中使用android:inputType="numberDecimal"android:inputType="number"android:digits="0123456789"但没有".",则无法插入小数点。因此,应该这样设置: android:inputType="numberDecimal" android:digits="0123456789." - saniok2713

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接