java - 单击空白区域时如何退出EditText?
问题描述
我制作了一个应用程序,当 EditText 失去焦点时会显示一个对话框。但是,即使关闭键盘,editText 也不会失去焦点。我希望当键盘关闭(使用后退按钮)或单击空白区域(空白区域是 LinearLayout)时,editText 应该失去焦点。我该怎么做?
解决方案
此方法使您可以在单击布局上的任意位置以及单击后退按钮时隐藏光标并隐藏键盘:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText.setFocusable(false);
findViewById(R.id.layout).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editText.setInputType(InputType.TYPE_NULL);
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
assert imm != null;
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});
}
推荐阅读
- html - 如何在div底部的左右两侧放置2个按钮?
- node.js - 在子句Nodejs雪花没有得到结果集
- java - 如何弃用 Google 登录的 startActivityResult
- html - 围绕旋转对象旋转
- php - 使用数据库进行 Laravel 测试 - 每个测试的单个事务未按预期工作
- twitter-bootstrap - 用于 Next.js 应用程序的 Bootstrap 安装 bootstrap 或 react-bootstrap
- java - Springboot 在 POST 请求中添加“_class”字段
- c# - 如何模拟不会导致脆弱测试的实现细节
- amazon-web-services - AWS Database Migration Service 只能迁移几个表或列吗?
- rightnow-crm - rightnow-crm 和不可用时间