本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何让虚拟键盘消失?

发布于2024-11-23 21:38     阅读(1039)     评论(0)     点赞(6)     收藏(4)


我的 AlertDialog 弹出窗口中有一个 EditBox。我让它在 AlertDialog 弹出时弹出虚拟键盘(这样我就不需要单击该白色字段来显示键盘),方法是:

InputMethodManager imm = (InputMethodManager)
            Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);

            if (imm != null){
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
            }

但是当我输入完毕后,我需要点击键盘上的“完成”,然后在 AlertDialog 中点击“确定”。问题是,用户输入完毕后会直接转到“确定”按钮,点击“确定”后,虚拟键盘仍停留在屏幕上。他们现在必须点击设备上的“返回”按钮。按下“确定”按钮后如何清除键盘?

这是我的整个 AlertDialog 代码,如果它有帮助的话:

case R.id.bKonacno:

                        }

                LayoutInflater layoutInflaterK = LayoutInflater.from(context);  
                View promptViewK = layoutInflaterK.inflate(R.layout.popup_answer, null);
                AlertDialog.Builder alertDialogBuilderK = new AlertDialog.Builder(context);
                // set prompts.xml to be the layout file of the alertdialog builder
                alertDialogBuilderK.setView(promptViewK);
                final EditText inputK = (EditText)promptViewK.findViewById(R.id.userInput);

                InputMethodManager imm = (InputMethodManager)
                Asocijacije.this.getSystemService(Context.INPUT_METHOD_SERVICE);

                if (imm != null){
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
                }

                alertDialogBuilderK
                                        .setCancelable(false)
                                        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                                    public void onClick(DialogInterface dialog, int id) {
                                                        // get user input and set it to result

                                                        //some code of mine
                                                    }
                                                })
                                        .setNegativeButton("Cancel",
                                                new DialogInterface.OnClickListener() {
                                                    public void onClick(DialogInterface dialog, int id) {
                                                        dialog.cancel();
                                                    }
                                               });
                                // create an alert dialog

                                AlertDialog alertK = alertDialogBuilderK.create();
                                alertK.show();

                                break;

在此处输入图片描述


解决方案


按下Ok/按钮时,您可以执行以下操作。Cancel

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

阅读关闭/隐藏 Android 软键盘以了解更多信息。希望对您有所帮助。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/693922/67f5925c6f09b5536f31/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)