首页 > 解决方案 > 单击空白区域时如何退出EditText?

问题描述

我制作了一个应用程序,当 EditText 失去焦点时会显示一个对话框。但是,即使关闭键盘,editText 也不会失去焦点。我希望当键盘关闭(使用后退按钮)或单击空白区域(空白区域是 LinearLayout)时,editText 应该失去焦点。我该怎么做?

标签: javaandroid

解决方案


此方法使您可以在单击布局上的任意位置以及单击后退按钮时隐藏光标并隐藏键盘:

  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);

                }
            }
        });
}

推荐阅读