android dialog 显示时弹出输入法


 LayoutInflater inflater = LayoutInflater
                .from(CashCaptureActivity.this);
        LinearLayout layout = (LinearLayout) inflater.inflate(
                R.layout.vip_mode_layout, null);
        final EditText addStockNumEt = (EditText) layout
                .findViewById(R.id.edit_text);
        Button firmBtn = (Button) layout
                .findViewById(R.id.btn_dialog_firm);
        Button cancleBtn = (Button) layout
                .findViewById(R.id.btn_dialog_give_up);
        mVipModeDialog = new AlertDialog.Builder(
                CashCaptureActivity.this).create();
        mWaringTv = (TextView) layout.findViewById(R.id.waring_tips);
        mWaringTv.setVisibility(View.INVISIBLE);
        mVipModeDialog.setView(layout);
        mVipModeDialog.setCancelable(true);
        firmBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                String code = addStockNumEt.getText().toString();
                if (StringUtils.isEmpty(code)) {
                    mWaringTv.setVisibility(View.VISIBLE);
                    return;
                }
                if (mMemberDetailPresenter == null) {
                    mMemberDetailPresenter = new MemberDetailPresenter(CashCaptureActivity.this, CashCaptureActivity.this, getPackageName());
                    mMemberDetailPresenter.loadByCode(code, true);
                } else {
                    mMemberDetailPresenter.loadByCode(code, true);
                }

            }
        });
        cancleBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                AppApplication.getInstance().setInputMethodManager(false, addStockNumEt);
                mVipModeDialog.dismiss();
            }
        });
        mVipModeDialog.setOnShowListener(new DialogInterface.OnShowListener() {  //当dialog弹出时调出输入键盘  但当编辑框没完全显示时不能保证弹出输入键盘

            @Override
            public void onShow(DialogInterface dialog) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        AppApplication.getInstance().setInputMethodManager(true, addStockNumEt);//弹出输入法键盘
                    }
                });

            }
        });
        addStockNumEt.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { //当发现编辑框完全画完显示时调用
            @Override
            public void onGlobalLayout() {//该段代码中去监听edittext是否被绘制完毕,如果绘制完毕则调用onGlobalLayoutListener.onGlobalLayout函数,在该函数中去显示键盘,运行下
                AppApplication.getInstance().setInputMethodManager(true, addStockNumEt); //弹出输入法键盘
            }
        });
        mVipModeDialog.show();


弹输入键盘:

    /**
     * 打开输入法
     *
     * @param isOpenInput
     */
    public void setInputMethodManager(boolean isOpenInput, EditText editText) {
        InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (isOpenInput) {
            imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);//强制显示
        } else {
            imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); //强制隐藏键盘
        }
    }


效果显示:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值