InputMethodManager imm= (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, 0);
项目中有这样一个需求,在某帖子里点击某一条评论的时候,弹出对话框让用户选择是删除评论还是回复评论,当用户点击回复评论的时候,自动打开软键盘,因此调用上述代码来显示软键盘,但软键盘并不会显示;
经查阅,发现只有当界面绘制完毕的时候,调用上述代码软键盘才会显示,在对话框消失的时候,马上调用上述代码,同时界面也要重新显示,所以软键盘不会显示,另外在oncreate里调用上述代码也不会显示;
解决办法:
把上述代码的调用延迟执行即可;
view.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager imm= (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, 0);
}
}, 100);