为什么键盘没有显示?

时间:2012-11-30 15:56:28

标签: android android-softkeyboard

当编辑文本字段获得焦点时,我无法打开软键盘。它适用于设备,但不适用于模拟器。我有一个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);

            }
        }

2 个答案:

答案 0 :(得分:0)

如果您遇到模拟器但不是真实设备的问题,请检查您的模拟设备设置。在Android虚拟设备管理器中>设备定义> [装置]>编辑...,确保按钮设置为“软件”而不是“硬件”。如果您使用硬件键盘模拟设备,则不会弹出键盘。

答案 1 :(得分:0)

你有没有尝试过这个版本的写作:

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

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