在我看来,我有一个搜索EditText,我想以编程方式触发字段上单击事件的行为,即将焦点放在文本字段上并在必要时显示软键盘(如果没有可用的硬键盘)。
我试过field.requestFocus()。 该字段实际上获得焦点但不显示软键盘。
我试过field.performClick()。 但那只调用该字段的OnClickListener。
任何的想法 ?
好先生,试试这个:
edittext.setFocusableInTouchMode(true);
edittext.requestFocus();
我不确定,但某些手机(某些旧设备)可能需要这样做:
final InputMethodManager inputMethodManager = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(edittext, InputMethodManager.SHOW_IMPLICIT);
与requestFocus()相同的结果......字段获得焦点但不触发软键盘。
我终于解决了在活动的onResume()方法中调用field.requestFocus()而不是onCreate()的问题。不知道它为什么有效......
视图在实际布局在屏幕上之前无法获得焦点。当onCreate()保存UI线程时,无法完成此操作,因此视图在onCreate()之后和onResume()之前直接布局。 :)
我很高兴看到这个答案非常感谢!!!!!
@fiddler它在onResume中工作,因为在onCreate之后调用on