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

时间:2012-11-12 23:17:55

标签: java android virtual-keyboard

基本上我正在尝试显示虚拟键盘并在不使用可见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()是我对c ++的c ++调用。我已经检查过以确保editText正在获得焦点而且确实如此。但是,showSoftInput返回false。任何帮助将不胜感激。

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

1 个答案:

答案 0 :(得分:0)

也许用.SHOW_IMPLICIT代替.SHOW_FORCED尝试吗?

您是否尝试过其他Android版本的其他仿真器/设备?