我在编写 Android 应用程序时遇到了一个非常简单的问题。我有一系列每行一个的 EditText
对象。
当用户长按 EditText
时,我需要显示键盘。用户进行长按操作时,我将调用此方法:
private void setNameAsEditable(View rowView, boolean setToEditable) {
EditText textView = (EditText) rowView
.findViewById(R.id.edittext_name);
textView.setFocusableInTouchMode(setToEditable);
textView.setFocusable(setToEditable);
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(textView, InputMethodManager.SHOW_IMPLICIT);
}
编辑文本框变为可编辑状态(可以看到下划线和光标,如下图所示)
但键盘没有弹出。
我尝试了来自stackoverflow的各种解决方案(例如这个),但都无效。
我甚至尝试了
this.getWindow().setSoftInputMode ( WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
我希望当用户长按 EditText
时,软键盘能够立即弹出。请问有人可以帮忙吗?
InputMethodManager
上方添加textView.requestFocus();
。因为除了您的代码,我只有这一行,并且似乎运行良好。 - Hariharan