3

我有一个以编程方式创建的edittext(所以不是在xml中),我想在用户按下它时启动一个数字键盘。问题是我希望这个键盘也包含小数分隔符 (.)。

我尝试了很多东西,但似乎没有任何效果

最终的 EditText 输入 = new EditText(this);

input.setKeyListener(new DigitsKeyListener()); // 这给出了没有小数点分隔符的数字 input.setInputType(InputType.TYPE_CLASS_NUMBER); // 这给出了没有小数点分隔符的数字 input.setInputType(InputType.TYPE_CLASS_PHONE);// 这给出了第二页中所有数字和小数点分隔符的电话键盘。这不是我想要的

我知道有一种方法可以实现自定义键盘:

http://android-developers.blogspot.com/2009/04/creating-input-method.html

http://developer.android.com/resources/samples/SoftKeyboard/index.html

但这似乎很痛苦,我首先在寻找更快的替代方案。

我想要的只是以下之一: 1. 启动包含小数点分隔符的数字键盘 2. 启动标准键盘,但在数字“页面”中设置 以上可能吗?先感谢您!

4

4 回答 4

8

我已经使用以下代码显示了键盘:

        // Set an EditText view to get user input
    final EditText input = new EditText(this);
    alert.setView(input);
    input.setInputType((InputType.TYPE_CLASS_NUMBER + InputType.TYPE_NUMBER_FLAG_DECIMAL));
于 2013-10-30T13:10:03.967 回答
3

您所描述的内容没有键盘,至少没有您可以作为普通输入类型获得的键盘。即使您制作了自定义键盘,这也不是处理此问题的好方法,因为用户每次想要使用您的应用程序时都必须切换键盘。

此外,您无法在“数字页面”上明确打开文本键盘,因为并非所有 Android 键盘甚至都有单独的数字页面。这是在每台设备上高度定制的。

我的第一个建议是使用普通的文本键盘,让用户决定哪种键盘最适合。

我的第二个建议是使用您需要的特定键的按钮/视图在屏幕上构建一个数字键盘。

于 2012-05-23T19:53:32.303 回答
0

就这样吧。

if (editText.getText().matches("^[0-9]+(\.[0-9]{1,2})?$")) {
            System.out.println("It is decimal number");
        }
于 2012-05-23T19:56:35.550 回答
0
new DigitsKeyListener(false, true) 

将给出一个十进制输入键盘

于 2016-03-18T12:04:01.197 回答