我已经尝试过常规但不起作用:
multiEdit.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(multiEdit, InputMethodManager.SHOW_IMPLICIT);
请注意我的getActivity()
。那是因为我在DialogFragment中使用MultiAutoCompleteTextView
。该代码段位于onCreateView
内。
答案 0 :(得分:5)
以下对我来说可靠。它会自动聚焦视图。无需额外的工作。
multiEdit.postDelayed(new Runnable() {
@Override
public void run() {
multiEdit.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN, 0, 0, 0));
multiEdit.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_UP, 0, 0, 0));
}
}, 200);
}
答案 1 :(得分:1)
尝试
multiEdit.requestFocus();
getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);