以编程方式设置 EditText 数字

新手上路,请多包涵

我本质上是在尝试以编程方式设置 EditText 的数字值。到目前为止我有:

 weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());

这很好,但我还希望能够包含一个小数位 (.)。有任何想法吗?

原文由 ryandlf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 620
2 个回答

试试这个:

 <EditText
    android:inputType="number"
    android:digits="0123456789."
/>

来自代码:

 weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));

但是,它允许用户包含多个“.”。有关实数,请参阅 JoeyRA 的回答。

原文由 Whiler 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试这个:

 weightInput.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
weightInput.setKeyListener(DigitsKeyListener.getInstance(false,true));


 public static DigitsKeyListener getInstance (boolean sign, boolean decimal)

返回一个接受数字 0 到 9 的 DigitsKeyListener,加上减号(仅在开头)和/或小数点(每个字段只有一个)(如果指定)。

这解决了关于许多 ‘.’ 的问题。在编辑文本中

原文由 JoeyRA 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题