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

时间:2016-08-12 12:02:22

标签: android keyboard android-context numeric android-input-method

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

我想通过编程方式实现这一目标。(运行时) 我成功地使用以下代码显示系统键盘。

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

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

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

任何人都可以知道如何实现这个目标吗?

3 个答案:

答案 0 :(得分:1)

借助自定义视图,您可以实现这样的效果,通常使用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;
    }
}

希望这会有所帮助..

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

你可以试试这个

edittext.setInputType(InputType.TYPE_CLASS_NUMBER);