我在 Android App am编码中遇到了一个非常简单的问题.我有一个EditText对象列表,每行一个. 当用户长按EditText时,我需要显示键盘.当用户长按时,我调用此方法: private void setNameAsEditable(View
当用户长按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); }
edittext变得可编辑(下划线和光标出现,如下所示)
但键盘没有出现.
我尝试了stackoverflow的各种解决方案(如this),但徒劳无功.
我甚至试过了
this.getWindow().setSoftInputMode ( WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
一旦用户长按EditText,我希望软键盘出现.有人可以帮忙吗?
试试吧,对我来说它运作正常.et =(EditText) findViewById(R.id.edittext_name); imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(et.getWindowToken(), 0); et.setText("hide key board"); et.setFocusable(false); et.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { // TODO Auto-generated method stub et.setFocusableInTouchMode(true); imm.showSoftInput(et, 0); et.setText("show key board long pressed"); return false; } });