如何显示数字键盘

问题描述 投票:0回答:6

我阅读了其他几篇文章并使用 input.setInputType(TYPE_NUMBER_FLAG_DECIMAL);确实打开了键盘,但不是数字键盘

这有什么窍门吗?

android text android-edittext
6个回答
26
投票

给予

android:inputType="number"
在您的 xml 文件中

编辑:“Number”不起作用,改为“number”(小写N)


14
投票

a) 在 xml 中

android:numeric="decimal"

b) 在代码中

EditText editView = new EditText(this);
editView.setKeyListener(new DigitsKeyListener());

9
投票

在你的xml中,你必须这样做:

android:inputType="Number"

在您的代码中,执行以下操作:

editText.requestFocus();

然后:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

我花了很多天才弄清楚这一点。我什至尝试过 editText.performClick();不工作。


3
投票

要在活动开始时弹出数字键盘,我使用了以下步骤:

layout中创建编辑文本字段为:

 <EditText
        ...
        android:inputType="number"    
        ...  />

在函数中onCreate()显示软键盘

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

最重要的是在 onResume 方法中给予焦点编辑文本。

    @Override
    public void onResume() {
        super.onResume();
        editText.setFocusableInTouchMode(true);
        editText.requestFocus();
    }

0
投票

我找到了两种简单的方法来做到这一点,将其中之一添加到 XML 文件中的 EditText 块中:

  1. 数字拨号键盘
        android:inputType="phone"
        android:digits="1234567890"
  1. 键盘的数字部分
        android:inputType="number"

0
投票

以下是完全以编程方式完成此操作的方法。由于您需要显示数字键盘,因此从技术上讲,您应该将

inputType
设置为 XML 布局内的
number
。但由于您没有 XML 布局,因此需要以编程方式设置相应的标志。以下是文档中关于
number
标志的说明:

<!-- A numeric only field.  Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_VARIATION_NORMAL}. -->
<flag name="number" value="0x00000002" />

因此,为了具有相同的行为,您需要执行以下操作:

mEditText.setInputType( InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL );
© www.soinside.com 2019 - 2024. All rights reserved.