在活动默认运行时显示数字键盘



应用程序的活动没有像textview,EditText,button这样的小部件。

我想通过编程实现这一点。(运行时)我成功地用下面的代码显示了系统键盘。

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

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

有人知道如何实现这一点吗?

在自定义视图的帮助下你可以这样实现,通常使用InputMethodManager你可以显示键盘。这个管理器将把输入委托给一个InputConnection,然后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;
    }
}

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

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

你可以试试这个

edittext.setInputType(InputType.TYPE_CLASS_NUMBER);