如何在特定适配器位置从RecyclerView获取视图并从这些视图中获取值?

时间:2017-12-15 06:29:20

标签: java android android-recyclerview recyclerview-layout

我的RecyclerView为每一行布局都有一个ImageView和一个TextView。在RecyclerViewAdapter的ViewHolder中,我有点击监听器

 v.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     Images i=list.get(getAdapterPosition());
                     i.setFlag(!i.getFlag());
                     list.set(getAdapterPosition(),(i));
                     notifyDataSetChanged();
                 }
             });

在该点击监听器中,我正在更改布尔标志,以便它可以显示是否选择了一个项目。取决于它的值我希望通过检查遍历整个ArrayList

for(int i=0; i<images.size(); i++){
                if(images.get(i).getFlag()){

                    // there I want to get view from LayoutManager for that item
                    //but how to get view for that item and get Bitmap form imageview for that item
                    //end of geting view 
                }
            }

请帮助从Recyclerview 图片查看特定适配器位置,以反映我的问题如下enter image description here

1 个答案:

答案 0 :(得分:5)

尝试使用 recyclerView.getLayoutManager().findViewByPosition(int position) 获取recyclerView的特定行

View row = recyclerView.getLayoutManager().findViewByPosition(0);
TextView textView = row.findViewById(R.id.YourTextviwID);
textView.setText("Nilu");
ImageView textView = row.findViewById(R.id.YourImageViewID);
imageView.setBackgroundResource(R.mipmap.ic_launcher);

注意: - 当您滚动recyclerView时,只有在屏幕上显示的项目才会从内存中删除

编辑: - 您可以在adapter中编写一个公开方法,以便在您的活动中获取arraylist,以便检查您的国旗