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

Mas*_*ood 6 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();
                 }
             });
Run Code Online (Sandbox Code Playgroud)

在那个点击监听器中,我正在更改布尔标志,以便它可以显示是否选择了一个项目.根据它的值, 我想通过检查遍历整个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 
                }
            }
Run Code Online (Sandbox Code Playgroud)

请帮助从Recyclerview Image 获取特定适配器位置的视图,以反映我的问题如下在此输入图像描述

Gok*_*oku 6

尝试将此用法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);
Run Code Online (Sandbox Code Playgroud)

注意:-滚动recyclerView时,仅显示在屏幕上的项目超过从内存中删除的项目

编辑:-您可以编写一个公共方法adapterarraylist参与您的活动,在这里您可以检查自己的标志