4

本质上,我试图在不使用可见EditTextTextView. 我意识到toggleSoftInput可以用来执行此操作,但是我需要使用它showSoftInput,因为我想使用 aTextWatcher来操作输入。此外,我使用的引擎是 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是当前焦点。

4

1 回答 1

0

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

您是否在其他可能具有其他 Android 版本的模拟器/设备上尝试过它?

于 2013-08-03T20:33:58.423 回答