对话框自动弹出软键盘_Android基础篇(Java)

文 | Promise Sun


一、描述:

1. 场景:

很多时候,带EditText的自定义对话框,需要实现在弹出对话框的同时自动弹出输入软键盘。

2. 分析:

以前记录过一篇文章

《Android:如何设置底部控件view随着软键盘的弹出而上移》(感兴趣的朋友可以点击此处查看实现方式)

是需要点击EditText才弹出输入软键盘,并未实现随着对话框的显示而自动弹出输入软键盘。

若希望实现随着对话框的显示而自动弹出软键盘,其实也并不难。只需要先给EditText设置焦点,然后设置软键盘,最后再给软键盘设置一个延时功能,使对话框弹出来以后再让软键盘自动弹出来。这个延时的时间设置只要不是0,其他任意毫秒值都没问题,具体实现效果,大家可以自测试试,根据实际的项目需要效果去实现就可以了。

二、功能实现:

1. 首先在清单文件 AndroidManifest.xml 中给 对话框所在的Activity设置属性:

android:windowSoftInputMode="adjustPan"

2. 在自定义的对话框中加入以下代码即可。

            //这里的editText是自定义对话框布局中的EditText
            editText.setFocusable(true);
            editText.setFocusableInTouchMode(true);
            editText.requestFocus();

            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
                }
            }, 100);//这里的100是设置的延时时间毫秒值,可按需要自行更改


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值