如何在安卓应用程序中以编程方式显示键盘

3
有没有办法在EditText获取焦点时通过编程告诉Android打开键盘?
另外,有没有办法告诉它打开数字键盘?
谢谢 Victor

可能是以编程方式打开软键盘的重复问题。 - Vincent Cantin
3个回答

9
为了在活动开始时弹出数字键盘,您可以按照以下步骤操作:

布局中创建编辑文本字段:

(如果您想使用QWERTY键盘,则无需此步骤)

 <EditText
        ...
        android:inputType="number"    
        ...  />

在函数onCreate()中显示软键盘。
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

最重要的是在 onResume 方法中专注于编辑文本。

    @Override
    public void onResume() {
        super.onResume();
        editText.setFocusableInTouchMode(true);
        editText.requestFocus();
    }

我尝试了这段代码。当 Activity 加载时,我可以看到 EditText 上的焦点,但在我点击 EditText 之前,我无法看到数字键盘。我有什么遗漏吗? - j10
EditText会获取焦点,但是你必须强制键盘弹出。你可以把这一部分写在onCreate()函数中。 - Rana Ranvijay Singh

8

要将其转化为数字,请使用以下内容

text.setInputType(InputType.TYPE_CLASS_NUMBER);

据我所知,键盘将在需要时自动弹出。

5

显示键盘:

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(viewToEdit, 0);

如何隐藏键盘:

if (getCurrentFocus() != null) {
    inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), 0);
}

这个一般来说是有效的,但是我没有提到我的EditText在一个对话框中,一旦我弹出对话框,键盘就会隐藏起来。如果我先弹出对话框,键盘就不会显示出来 - 有什么想法吗? - Victor Grazi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接