Изменение содержимого определенных карточек в RecyclerView?

Как надо перестроить код, что бы можно было назначать img не на все карточки, а только на те, которые я указываю - например номер 4, 15, 31?

main

public class MainActivity extends AppCompatActivity {

        private EditText innerText;
        private Button  butClose;

        private AlertDialog OptionDialog;
        private RecyclerView recyclerView;

        private RecyclerView.LayoutManager layoutManager;
        private int img1;
    ArrayList<String> myValues = new ArrayList<String>();
    

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                innerText = findViewById(R.id.innerText);
                
                
        myValues.add("KitKat");
        myValues.add("Lollipop");
        myValues.add("Marshmallow");
        myValues.add("1232455465778");
        
        img1 = R.drawable.star;
        
    }
    
    @RequiresApi(api = Build.VERSION_CODES.O)
    public void openDialog(View v){
        Dialogus();
        innerText.setText("");
    }


    public void Dialogus(){

        LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = li.inflate(R.layout.stats_fragment, null, false);
            OptionDialog = new AlertDialog.Builder(this).create();
            OptionDialog.setTitle("TestInfo");

            RecyclerViewAdapter adapter = new RecyclerViewAdapter(myValues, img1);
            
                recyclerView = v.findViewById(R.id.recycler_view);
                recyclerView.setHasFixedSize(true);

                layoutManager = new LinearLayoutManager(this);
                recyclerView.setAdapter(adapter);
                recyclerView.setLayoutManager(layoutManager);
                    butClose =  v.findViewById(R.id.butClose);
                        OptionDialog.setView(v);
                        OptionDialog.setCancelable(true);
                            butClose.setBackgroundColor(Color.CYAN);
                            butClose.setOnClickListener(new View.OnClickListener() {
                                public void onClick(View v) {
                                    OptionDialog.dismiss();
                                }
                            });
                            OptionDialog.show();
            }
}

Adapter

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
    public ArrayList<String> myValues;
    public int img1;

    public RecyclerViewAdapter (ArrayList<String> myValues, int imgIn){
        this.myValues= myValues;
        this.img1 = imgIn;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View listItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);
        return new MyViewHolder(listItem);
    }

   @Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.myTextView.setText(myValues.get(position));
    holder.img.setImageResource(R.drawable.star);
}

    @Override
    public int getItemCount() {
        return myValues.size();
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {
        private ImageView img;
        private TextView myTextView;
        public MyViewHolder(View itemView) {
            super(itemView);
            myTextView = itemView.findViewById(R.id.textview_1);
            img = itemView.findViewById(R.id.imag);
        }
    }
}

Ответы (1 шт):

Автор решения: Syorito Hatsuki

Стоило бы создать модель для того что бы сувать в каждую карточку свои параметры, вот хороший пример который не сильно отличается от твоего кода

https://www.androidhive.info/2016/01/android-working-with-recycler-view/

Тут используется 3 TextView но думаю не такой большой проблемой будет заменить TextView на ImageView :)

→ Ссылка