当按下4时,EditText打印$

时间:2012-11-21 02:33:00

标签: android android-edittext

我有一个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));

这实现了我想要的(没有$)。但是,它将虚拟键盘更改为我不想要的键盘。我想要带有大号按钮的手机键盘。

2 个答案:

答案 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"