Android - 带小数分隔符的数字键盘

时间:2012-05-23 19:42:44

标签: android decimal android-softkeyboard numeric

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

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

final EditText input = 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 个答案:

答案 0 :(得分:5)

我使用此代码显示了键盘:

        // 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));

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:0)

在这里。

if (editText.getText().matches("^[0-9]+(\.[0-9]{1,2})?$")) {
            System.out.println("It is decimal number");
        }

答案 3 :(得分:0)

new DigitsKeyListener(false, true) 

将给出小数输入键盘