gpt4 book ai didi

java - 为什么 showSoftInput 不显示虚拟键盘?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:12 26 4
gpt4 key购买 nike

本质上,我试图在不使用可见的 EditTextTextView 的情况下显示虚拟键盘并收集输入。我意识到 toggleSoftInput 可用于执行此操作,但我需要使用 showSoftInput 因为我想使用 TextWatcher 来操作输入。另外,我使用的引擎是 c++,所以我试图尽可能少地编写纯 java 代码,从而避免使用 .xml 文件。所以这里...

public class GameActivity extends Activity {

protected GameView view = null;
protected EditText editText;

protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);

view = new GameView(this);
setContentView(view);

editText = new EditText(this);
editText.setCursorVisible(false);
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
}

public boolean showKeyboard()
{
JniApp.log("showKeyboard() in Java invoked!!!");

editText.requestFocus();
editText.requestFocusFromTouch();

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
}

showKeyboard() 是我对 java 的 c++ 调用。我已经检查以确保 editText 正在接收焦点,而且确实如此。但是,showSoftInput 返回 false。任何帮助将不胜感激。

更新:经过一些调试后,看起来好像 requestFocus 返回了 true 但 Activity 仍然说 view 是当前焦点。

最佳答案

也许尝试使用 .SHOW_IMPLICIT 而不是 .SHOW_FORCED ?

您是否在其他模拟器/设备上尝试过(也许还有其他 Android 版本)?

关于java - 为什么 showSoftInput 不显示虚拟键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13353224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com