EditText无法输入数字

3

我在我的安卓应用中有一个EditText视图。然而,我的EditText无法接受整数值作为输入,但是它可以接受其他所有类型的值。以下是我的EditText视图:

<EditText
android:id="@+id/txtSearchItems"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:visibility="visible"
android:hint="Search"
android:textSize="14dp"
android:layout_alignParentLeft="true" 
android:layout_marginTop="2dp"
android:layout_centerHorizontal="true">
</EditText>

它不能接受整数吗?还是你的意思是它只能接受文本?我不明白为什么它不允许数字字符。 - Jack Satriano
你有在键盘上点击[12..]键吗? - Lucifer
LogCat中没有显示任何错误。我有两个设备,摩托罗拉和三星Galaxy。在三星Galaxy上,EditText视图采用数字值,然而在摩托罗拉上却无法使用数字键。 - Asad Iqbal
@AsadIqbal 在模拟器还是设备上测试? - RobinHood
@RobinHood 我正在设备上测试它,三星、摩托罗拉和HTC。在摩托罗拉上,无法输入数字,并且不能删除文本。而在HTC上,可以输入数字但无法从EditText视图中删除文本。 - Asad Iqbal
显示剩余3条评论
3个回答

17

我曾经面临的可能问题,怀疑是:EditText可能包含在XML布局文件中,并且布局文件将用于Dialog实例。当对话框实例的onKeyListener返回一些无效的默认值,即对于不相关的键“return true”时会出现问题。在这种情况下,您的EditText将表现出奇怪的行为。该场景的示例代码如下:

Dialog d=new Dialog(context);
    d.setContentView(R.layout.mylayout);
    d.setOnKeyListener(new OnKeyListener() {

                    @Override
                    public boolean onKey(DialogInterface dialog, int keyCode,
                            KeyEvent event) {
                        Log.i("onkey", keyCode + " == Onkey");
                        if (keyCode == KeyEvent.KEYCODE_BACK) {
                                return true;
                        }
                        return true;  // !!! this is wrong it should be return false;
                    }
                });
            }

Dialog d = new Dialog(context); d.setContentView(R.layout.mylayout); d.setOnKeyListener(new OnKeyListener() {@Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { Log.i("onkey", keyCode + " == Onkey"); if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return true; // !!! 这里是错误的,应该返回true; } }); } - Arsalan J.
很好的答案。这就是我面临的问题。 - Arshad

0

试试这个?

android:inputType="number"
android:digits="0123456789"

如果它能正常工作,您可以添加字母和数字以允许输入。这里有一个方便的列表,列出了您可以尝试的所有inputTypes。它们大多数会改变软键盘上显示的内容。

我试过了,但没什么帮助。无法理解出了什么问题。 - Asad Iqbal

-1
你需要在你的xml中添加android:inputType="number",就像下面这样:
<EditText
android:id="@+id/txtSearchItems"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:visibility="visible"
android:hint="Search"
android:textSize="14dp"
android:layout_alignParentLeft="true" 
android:layout_marginTop="2dp"
android:layout_centerHorizontal="true"
android:inputType="number">    <------------- this line added
</EditText>

抱歉,我测试了但没有得到成功的结果。它还是一样的。它不接受数字值。 - Asad Iqbal
@AsadIqbal,你是认真的吗?它难道没有显示数字键盘吗? - Lucifer
1
设备上显示数字键盘,但当我点击按钮时,它没有将其中的数值输入。我的代码中对这个EditText视图没有任何处理。 - Asad Iqbal
请问您能否上传您的活动代码? - Lucifer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接