0

当编辑文本字段获得焦点时,我无法打开软键盘。它适用于设备,但不适用于模拟器。我有一个 setOnFocusedChangedListener 试图处理它,我认为代码被调用了。此外,屏幕底部会出现一个灰色条。

谁能给我一些关于寻找什么的提示?这是我一直在尝试的类型:

    mainPassEdit =  (EditText)mainPrefsPasswordDialog.findViewById(R.id.prefs_main_pass_dialog_edit_text);
    mainPassEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                Log.v(TAG, "has focus");
                InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.toggleSoftInput(0, 0);

            }
        }
4

2 回答 2

0

如果您遇到模拟器问题但不是真实设备,请检查您的模拟设备设置。在 Android Virtual Device Manager > Device Definitions > [Device] > Edit... 中,确保 Buttons 设置为“Software”而不是“Hardware”。如果您使用硬件键盘模拟设备,则不会弹出键盘。

于 2012-11-30T16:01:40.043 回答
0

你试过这个版本的写法吗:

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

通过直接引用 EditText,您可以更好地控制显示它并将其链接到 EditText

于 2012-11-30T16:04:18.013 回答