android dialog 显示时弹出输入法
16lz
2022-01-22
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); //强制隐藏键盘 } }
效果显示:
更多相关文章
- android中隐藏以及显示软键盘代码
- android 键盘不弹出
- Android:密码显示隐藏
- Android(安卓)打开和关闭软键盘
- android朋友圈监听键盘状态 点击空白区域隐藏键盘
- android悬浮球,应用在所有软件之上,点击可以显示菜单
- Android中显示照片的Exif信息
- Android(安卓)PopupWindow显示位置和显示大小
- android 软键盘处理