应用程序的活动没有像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);