当焦点移出TextEdit框时,我想消失键盘。我已经彻底搜索了stackoverflow和google的答案,并尝试了我所看到的每个响应/文章,但似乎没有任何用处。

与许多人一样,我对Android开发非常陌生。我必须忽略一些小细节,但无济于事。

我当前的实现(再次,我已经尝试了许多解决方案)如下:

我的类(class)实现了OnFocusChangeListener。调用super和OnCreate后,我执行setContentView:

EditText editText = (EditText) findViewById(R.id.text_box);<br> editText.setOnFocusChangeListener(this);


@Override
public void onFocusChange(View v, boolean hasFocus) { Log.d(TAG, "--> onFocusChange"); }

但是我从来没有看到该日志消息。

有时我认为onFocusChange不是我认为的那样。我的想法是,当我们触摸textedit字段时,此 View 将获得焦点,而当您触摸屏幕的任何其他区域时,请说一个按钮/列表框等​​,textedit失去焦点,应调用onFocusChange,但不是,我从没看到日志条目。

阐明我正在使用Android Studio并创建使用 fragment 的应用程序也许很有用。

因此,我在“详细信息 Activity ”上执行此操作,该 Activity 又是 fragment 的一部分。我也曾尝试在 fragment 的onActivityCreated上执行此操作。

两种方法都不适合我。

有什么想法我在这里可能会错过吗?

非常感谢您的评论。

最佳答案

edittext.requestFocus();
或者

尝试以下操作:

       EditText editText = (EditText) findViewById(R.id.text_box);
       editText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus)
        {
            if (hasFocus == true){
                edittext.requestFocus();
            }
            else{
                InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
            }
        }
    });

关于android - onFocusChange对我不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25051685/

10-10 04:26