Решение моей проблемы должно быть простым, но я все равно не могу его разблокировать. Я видел здесь несколько похожих проблем, но поскольку я только новичок, у меня возникают проблемы с реализацией предлагаемых решений в моем конкретном случае c, который выглядит следующим образом:
это мой пользовательский интерфейс , представляющий мою проблему
My ImoClass: publi c class ImoClass {
private int imo;
public ImoClass(int imoj) {this.imo = imoj;}
public int getImo() {return imo;}
My RecyclerViewAdapater: publi c класс ImoAdapterCLICK расширяет RecyclerView.Adapter {
public class MeuViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public ImageView imagem, emoji;
public MeuViewHolder(View itemView) {
super(itemView);
imagem = itemView.findViewById(R.id.imagem_item);
itemView.setOnClickListener(this);
emoji=itemView.findViewById(R.id.imagem_select);
}
@Override
public void onClick(View v) {
//TODO: show image clicked in ImageView "emoji"
// I have tested this: emoji.setImageResource(objetoClicked.getImo()) but without success !!
}
}
private final ArrayList<ImoClass> meusItems;
public ImoAdapterCLICK(ArrayList<ImoClass> arrayList) {
this.meusItems = arrayList;
}
@Override
public MeuViewHolder onCreateViewHolder(ViewGroup parent, int i) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid, parent, false);
MeuViewHolder viewHolder = new MeuViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(MeuViewHolder holder, int position) {
ImoClass objeto = meusItems.get(position);
holder.imagem.setImageResource(objeto.getImo());
}
@Override
public int getItemCount() {
return meusItems.size();
}
}
My "MainActivity": publi c класс ImoRecyclerViewCLICK расширяет AppCompatActivity {
private RecyclerView recyclerView;
private ImoAdapterCLICK adapter;
public ArrayList<ImoClass> meusItems;
private GridLayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imo_grid);
recyclerView = findViewById(R.id.recycler);
layoutManager = new GridLayoutManager(this, 5);
recyclerView.setLayoutManager(layoutManager);
meusItems = new ArrayList<>();
ImoClass item1 = new ImoClass(R.mipmap.imo1);
ImoClass item2 = new ImoClass(R.mipmap.imo2);
...
ImoClass item2 = new ImoClass(R.mipmap.imo30);
meusItems.add(item1);
meusItems.add(item2);
...
meusItems.add(item30);
adapter = new ImoAdapterCLICK(meusItems);
recyclerView.setAdapter(adapter);
}
}
Я очень ценю любую помощь. Спасибо!! Вы мне очень помогли !!