温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-09-07 03:51:05 来源:脚本之家 阅读:636 作者:ganchuanpu 栏目:移动开发

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无法弹出输入法解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI