【问题标题】:How to get non focused recyclerview item using position android如何使用位置 android 获取非聚焦的 recyclerview 项目
【发布时间】:2015-10-30 08:57:53
【问题描述】:

我想用一些数据动态更新 recyclerview 适配器项的 textview 值。

为此,我正在这样做:

View mRecyclerView = linearLayoutManager.getChildAt(viewPosition);

                TextView textView=(TextView) mRecyclerView.findViewById(R.id.text_number);
                Integer chatCount = Integer.parseInt(textView.getText().toString());
                chatCount++;
                textView.setText(chatCount + "");
                jobsFragmentRecyclerViewAdapter.notifyItemChanged(viewPosition);

但上述编码仅适用于屏幕上的可见视图,对于不可见的视图,我得到mRecyclerView 的空指针异常,任何人都可以帮助我了解如何获取不可见的 recyclerview 项目聚焦

提前致谢

【问题讨论】:

    标签: android android-recyclerview linearlayoutmanager


    【解决方案1】:

    您的代码中的某处应该有一个adapter,它填充了RecyclerView 的数据。 adapter 有一个名为 onBindViewHolder() 的方法,它填充每个 ViewHolder。这就是您应该编写每个viewholder 的外观的地方。

    例如:您可以有一个字符串列表(每个视图持有者一个)。 onBindViewHolder 将采用一个 String 并将 TextView 文本设置为该字符串。因此,更改该列表中的一个字符串(并调用 notifyItemChanged())就足够了

    【讨论】:

    • 感谢 pelocho 的回复,您提供的解决方案是在适配器中初始设置数据。但我想要的是通过将其位置提供给 linearlayoutmanager(正在管理它)或recyclerview(正在持有)它。但是所有方法getChildView(position)等都返回可见的孩子。我想要通过提供索引来获得焦点的视图。我希望你能清楚地理解我的问题
    • 是的,我做到了。我提供的解决方案也适用于初始设置和更新项目。更新数据源并致电notifyItemChanged()(或notifyDataSetChanged(),如果您想更新所有内容)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    相关资源
    最近更新 更多