android - 如何将 setOnFocusChangeListener 与 RecyclerView 一起使用?

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

                    }
                }
            });

以上仅返回来自 recyclerview 中第一个 editText 的输入。我做错了什么? 我希望它从 recyclerview 中的所有 EditTexts 返回文本。

最佳答案

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

因此,请监控焦点增益并在键盘弹出之前先做您的事情。希望这会有所帮助。

关于android - 如何将 setOnFocusChangeListener 与 RecyclerView 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47242007/

相关文章:

android - 将 Recycler View 项目拖放到 Image View

android - Recyclerview ViewHolder : onCreateViewHolder , View 绑定(bind)和onBindViewHolder在同一个类中

android - 扩展 RecyclerView : Error Inflating Class com. example.MyRecyclerView

android - 如何根据屏幕尺寸设置回收站 View 项目宽度尺寸?

android - ListView 重用 View 时......我不希望它

android - 发布 gradle artifact whitout source

android - 资源 NotFoundException?

android - 如何在 InputMethodManager 类中使用 setInputMethod

android - 如何在对 View 执行缩放后获取以像素为单位的实际高度和宽度

android - RecyclerView onClick 在过滤器适配器上出现错误