Android 在AlertDialog中显示软键盘键入SYSTEM\u ERROR或SYSTEM\u ALERT

Android 在AlertDialog中显示软键盘键入SYSTEM\u ERROR或SYSTEM\u ALERT,android,android-layout,android-alertdialog,android-softkeyboard,Android,Android Layout,Android Alertdialog,Android Softkeyboard,我的活动中有一个AlertDialog(这是一个锁应用程序),所以我可以阻止系统按钮 public OverlayDialog(Activity activity, boolean backShouldWork, boolean justFinish) { super(activity, R.style.OverlayDialog); activ = activity; WindowManager.LayoutParams params =

我的活动中有一个AlertDialog(这是一个锁应用程序),所以我可以阻止系统按钮

    public OverlayDialog(Activity activity, boolean backShouldWork, boolean justFinish) {
        super(activity, R.style.OverlayDialog);
        activ = activity;
        WindowManager.LayoutParams params = getWindow().getAttributes();
        params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
        params.dimAmount = 0.0F; // transparent
        params.width = MATCH_PARENT;
        params.height = MATCH_PARENT;
        params.gravity = Gravity.BOTTOM;
        getWindow().setAttributes(params);
        getWindow().setSoftInputMode(
                    WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE
        getWindow().setFlags(FLAG_SHOW_WHEN_LOCKED | FLAG_NOT_TOUCH_MODAL, 0xffffff);
        setOwnerActivity(activity);
        setCancelable(false);
    }

    protected final void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        hideSystemUI(getWindow().getDecorView());
        sp = PreferenceManager.getDefaultSharedPreferences(getContext());
        editor = sp.edit();
        emergencyType = sp.getInt("emergency", 0);
        sequence = new ArrayList<>();
        mHandler = new Handler();
        mRunnable = new Runnable() {
            @Override
            public void run() {
                if (upPress && backPressed) {
                    activ.finish();
                }
            }
        };
        FrameLayout framelayout = new FrameLayout(getContext());
        framelayout.setBackgroundColor(0);
        EditText editText = new EditText(getContext());
        showKeyboard(editText);

        framelayout.addView(editText);
        setContentView(framelayout);
    }

    public void showKeyboard(final EditText ettext) {
        ettext.requestFocus();
        ettext.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager keyboard = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                keyboard.showSoftInput(ettext, InputMethodManager.SHOW_FORCED);
            }
        } , 200);
    }
public overlydialog(活动活动、布尔backShouldWork、布尔justFinish){
超级(活动,R.style.overlydialog);
activ=活动;
WindowManager.LayoutParams params=getWindow().getAttributes();
params.type=WindowManager.LayoutParams.type\u系统错误;
params.dimAmount=0.0F;//透明
params.width=匹配父项;
params.height=匹配父项;
params.gravity=gravity.BOTTOM;
getWindow().setAttributes(参数);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT\输入\状态\可见
getWindow().setFlags(锁定时显示标志、不触摸标志、0xffffff模式);
setOwnerActivity(活动);
可设置可取消(假);
}
创建时受保护的最终无效(捆绑){
super.onCreate(bundle);
hideSystemUI(getWindow().getDecorView());
sp=PreferenceManager.getDefaultSharedReferences(getContext());
editor=sp.edit();
emergencyType=sp.getInt(“紧急”,0);
序列=新的ArrayList();
mHandler=新处理程序();
mRunnable=newrunnable(){
@凌驾
公开募捐{
如果(上压和下压){
完成动作();
}
}
};
FrameLayout=newframelayout(getContext());
framelayout.setBackgroundColor(0);
EditText EditText=新的EditText(getContext());
显示键盘(编辑文本);
framelayout.addView(编辑文本);
setContentView(框架布局);
}
公共无效显示键盘(最终编辑文本){
ettext.requestFocus();
ettext.postDelayed(新的Runnable(){
@凌驾
公开募捐{
InputMethodManager键盘=(InputMethodManager)getContext().getSystemService(Context.INPUT\u方法\u服务);
键盘.showSoftInput(ettext,InputMethodManager.SHOW_强制);
}
} , 200);
}
问题是软键盘没有显示。我尝试强制输入法始终可见,并请求编辑文本的焦点,但没有成功 有人遇到过这个问题吗