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