删除视图键盘[重复]
Posted
技术标签:
【中文标题】删除视图键盘[重复]【英文标题】:remove view keypad [duplicate] 【发布时间】:2012-12-13 05:00:19 【问题描述】:可能重复:Close/hide the android Soft Keyboard
我是一个初学者,并且编写了一个简单的程序来查找二次方程的根。在 EditText 字段中输入值效果很好,因为会弹出虚拟键盘,以便您输入数字。但是,键盘覆盖了显示结果的 TextView。如果用户知道,他们可以按“返回”键,然后移除小键盘,显示结果字段。但我希望当用户在不按“返回”键的情况下触摸应用程序中的“执行”按钮时键盘消失。
我一直在研究这个,有些人建议使用 finish();但这不仅删除了键盘,还退出了整个程序。
那么最简单的方法是只移除小键盘,留下底层的 TextView 显示?我想将其包含在执行数学运算的 onClick 视图中。
欢迎提出任何建议。
【问题讨论】:
【参考方案1】:只需在 onClick 方法中添加这段代码:
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(yourSubmiBtn.getWindowToken(), 0);
【讨论】:
非常感谢——看起来正是我需要的。但是,作为初学者,我在实施方面遇到了一些麻烦。 Eclipse 告诉我我需要创建一个 Context 局部变量,我照做了。然后它要我初始化它,所以我将它初始化为“null”。但是程序崩溃了。 (当然是空指针异常。)将 mContext 初始化为空是否正确? 我添加了声明“Context mContext = null;”作为局部变量。 Eclipse 说,“空指针访问:变量 mContext 在这个位置只能为空。”我不确定这意味着什么。 上下文是你的 Activity 实例。如果 onClick 方法在您的活动类中,请将 mContext 替换为 MyActivity.this(其中 MyActivity 是您当前的活动名称) Gezdy,这非常有效。谢谢!以上是关于删除视图键盘[重复]的主要内容,如果未能解决你的问题,请参考以下文章