在 Activity 默认 运行 时间内显示数字键盘

Display numeric keyboard in Activity default run time

应用程序 activity 没有像 textview、EditText、button 这样的小部件。

我想通过编程来实现这个。(运行 时间) 我成功地能够使用以下代码显示系统键盘。

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

     imm.showSoftInput(getWindow().getDecorView(), 0);

我想显示数字键盘而不是 qwerty 默认键盘。

有人知道如何实现吗?

您不能将 inputType 设置为 InputMethodManager。但我遇到的解决方法是在布局中放置一个 edittext 并将 inputType 设置为 xml 中的 Number 并隐藏该视图。然后在运行时使用此 edittext 显示数字键盘。 喜欢:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(your_edittext, 0);

在自定义视图的帮助下,您可以实现这样的功能,通常使用 InputMethodManager 可以显示键盘。该管理器将把输入委托给 InputConnection,然后再委托给 InputMethod。

所以制作一个像那样执行的自定义视图..

public class MyCustomView extends View {

    ..your methods here..

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        InputConnection inputConnection =  super.onCreateInputConnection(outAttrs);
        outAttrs.inputType |= InputType.TYPE_CLASS_NUMBER;
        return inputConnection;
    }
}

希望这对您有所帮助..

你可以试试这个

edittext.setInputType(InputType.TYPE_CLASS_NUMBER);