我有一个EditText,我只允许字符$ 0123456789。
除非我按下数字4(在虚拟或硬件键盘上),否则一切都运行正常,它会打印一个美元符号($)。
为什么要这样做?
以下是我的EditText的XML:
<EditText
android:id="@+id/amount_text"
style="@style/textbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:cursorVisible="false"
android:digits="$0123456789."
android:gravity="left|center_vertical"
android:hint="@string/amount_hint"
android:inputType="textPhonetic|numberDecimal" />
次要问题:
mAmountTxt.setKeyListener(DigitsKeyListener.getInstance(false, true));
这实现了我想要的(没有$)。但是,它将虚拟键盘更改为我不想要的键盘。我想要带有大号按钮的手机键盘。
答案 0 :(得分:1)
首先,我100%确定它与您的EditText xml没有直接关系。我已经在Emu 2.1,Emu 4.0,Emu 4.1和Real Phone 4.0中尝试过你的xml,并且每个都运行良好。
其他可能的原因:
它可能是模拟器 - 它们有时是错误的。您可以尝试创建模拟器的新实例并进行测试吗?或者,尝试重新启动adb?
这可能是程序化的。你做任何替换或类似的事情吗?
我不确定这是做什么的:style="@style/textbox"
其次,要使键盘布局看起来像手机,请使用此代替setKeyListener
mAmountTxt.setInputType(InputType.TYPE_CLASS_PHONE);
答案 1 :(得分:0)
您写道:
I want the phone keyboard with the big number buttons.
将inputType
设置为:
android:inputType="phone"
而不是:
android:inputType="textPhonetic|numberDecimal"