Android中自定义的dialog中的EditText无法弹出输入法解决方案

  • 2022-07-18 12:46:29

1.解决无法弹出输入法:

  在show()方法调用之前,用dialog.setview(new edittext(context))添加一个空的edittext,由于是自定义的alertdialog,有我们指定的布局,所以设置这个不会影响我们的功能,这样就可以弹出输入法了……

2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有edittext时应该,在显示dialog的同时自动弹出键盘:

(1) 可以在自定义的dialog中增加如下方法:

public void showkeyboard() { 
    if(edittext!=null){ 
      //设置可获得焦点 
      edittext.setfocusable(true); 
      edittext.setfocusableintouchmode(true); 
      //请求获得焦点 
      edittext.requestfocus(); 
      //调用系统输入法 
      inputmethodmanager inputmanager = (inputmethodmanager) edittext 
          .getcontext().getsystemservice(context.input_method_service); 
      inputmanager.showsoftinput(edittext, 0); 
    } 
}

其中edittext为自定义dialog中的输入框的view

(2) 在dialog.show()后,调用这个方法显示输入法,由于在调用时可能dialog界面还未加载完成,edittext 可能还为空,所以需要加上一个延时任务,延迟显示:

dialog.show(); 
timer timer = new timer(); 
timer.schedule(new timertask() { 
  
  @override 
  public void run() { 
    dialog.showkeyboard(); 
  } 
}, 200); 

以上所述是小编给大家介绍的android中自定义的dialog中的edittext无法弹出输入法解决方案,希望对大家有所帮助

猜你喜欢