【发布时间】:2012-11-12 23:17:55
【问题描述】:
基本上我试图在不使用可见的EditText 或TextView 的情况下显示虚拟键盘并收集输入。我意识到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,但活动仍然显示 view 是当前焦点。
【问题讨论】:
标签: java android virtual-keyboard