如何在编辑文本聚焦时显示软键盘

2024-02-11

我想在按下键盘时自动显示软键盘EditText焦点集中(如果设备没有物理键盘)并且我有两个问题:

  1. When my Activity显示,我的EditText获得焦点但键盘不显示,我需要再次单击它才能显示键盘(当我的Activity被展示)。

  2. 当我单击键盘上的“完成”时,键盘被关闭,但EditText保持专注,但你不想要(因为我的编辑已经完成)。

继续说下去,我的问题是要有一个更像 iPhone 的东西:让键盘与我的键盘保持同步。EditText状态(聚焦/未聚焦),当然如果有物理键盘,则不会显示软键盘。


要强制显示软键盘,您可以使用

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
yourEditText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);

为了消除焦点EditText,遗憾的是你需要一个假人View来抓住焦点。


要关闭它,您可以使用

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);

这适用于在对话框中使用它

public void showKeyboard(){
    InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}

public void closeKeyboard(){
    InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在编辑文本聚焦时显示软键盘 的相关文章

随机推荐