2

应用程序具有没有类似textview,EditText,按钮的小部件的活动。在活动默认运行时显示数字键盘

我想通过编程实现这个(运行时间) 我成功地能够显示带有下面代码的系统键盘。

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

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

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

任何人都可以有想法如何实现这一目标?

回答

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; 
    } 
} 

希望这有助于..

+0

我已经阅读过这个答案:http://stackoverflow.com/questions/3980510/display-a-numeric-keypad-on-activity-without-an-input-area?rq=1但它没有工作。你试过这个吗? – NovusMobile

+0

以前很多时候..只知道我跟着这个.. –

0

你不能将inputType设置为InputMethodManager。但我遇到的解决方法是在layout中放置一个edittext,并将inputType设置为Number in xml并隐藏该视图。然后在运行时使用这个edittext来显示数字键盘。 像:

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

对于Android应用销售点,你就可以做到这一点,但正如我告诉过你的,不可能将任何小部件加入其中。我正在关于JNI部分 – NovusMobile

0

你可以试试这个

edittext.setInputType(InputType.TYPE_CLASS_NUMBER);