如何将 setOnFocusChangeListener 与 RecyclerView 一起使用?

ZNZ*_* MW 5 android android-recyclerview

我在 RecyclerView 的适配器类中的 onBindViewHolder() 上有以下内容:

holder.answerEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if(!hasFocus){

                        String answer = holder.answerEditText.getText().toString();

                        mDatasetAnswers.add(answer);

                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

以上仅从回收视图中的第一个 editText 返回输入。我可能做错了什么?我希望它从回收站视图中的所有 EditTexts 返回文本。

Kha*_*der 0

发生这种情况是因为,一旦您单击 recyclerview 中的任何编辑框,键盘就会弹出,因为 onbindview 被调用,并且焦点更改为 recyclerview 中的第一个框,因为所有行都再次重新膨胀。

因此,监视焦点增益并在键盘弹出之前先做你的事情。希望这可以帮助。