我有一个以编程方式创建的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.启动标准键盘,但在数字“页面”中设置 以上是否可能?提前谢谢!
答案 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)
将给出小数输入键盘