在回收站视图中更改行中的特定项目

时间:2017-10-04 09:59:36

标签: java android android-recyclerview recycler-adapter

如何在RecyclerView中更改行中的特定视图。 Adapter.notifyDataSetChangedAdapter.notifyItemChanged更新行。但我需要更改行中的特定视图,而不要触及此行中的其他视图。

3 个答案:

答案 0 :(得分:0)

您可以使用以下代码

 MyRecyclerAdapter.ViewHolder viewHolder= (MyRecyclerAdapter.ViewHolder) recycleView.findViewHolderForAdapterPosition(1);
    viewHolder.txtView.SetText("Some Text");

答案 1 :(得分:0)

首先,使用Glide(由谷歌)代替毕加索。效率更高。

其次,如果您的设备已经存在于缓存中,则不会再次下载相同的图像。

现在, 只需更改列表中的数据,然后更新适配器或回收站视图。

在AdapterClass中

创建一个界面,让我们说

public interface TheUpdater{
    public void updateMyAdapter(int position);
}

然后在Activity中实现此接口并覆盖此方法。

现在,为了获得视图的位置。

您可以覆盖视图的onClick()(按钮甚至整个父视图,即布局)并执行以下语句。

mTappedPosition = getAdapterPosition();

listener.updateMyAdapter(mTappedPosition); //Update the adapter

mTappedPosition是您的全局变量。

在您的活动中

@Override
updateMyAdapter(int position){
---- //Do stuff
mAdapter.notifyItemSetChanged(position);
}

答案 2 :(得分:0)

我认为要避免图像加载问题,您必须使用图像缓存技术。因此,已加载的图像将不会再次加载。

如果图像已经加载并且每一行都显示相同的图像集,那么您可以为itemModel保留一个布尔标志(具有适配器项数据的dto)。并更改该模型然后调用

 yourListToAdapter(index).setFlag(showImage1); // showImage1 boolean flag 

 yourAdapter.notifyItemChanged(index);