我正在尝试从 RecyclerView 更改项目背景颜色。如果项目具有类型(ListMessageModel.TYPE RECEIVED 或 List Message Model.TYPE_SENT),我想更改背景。但始终所有项目都具有相同的可绘制对象。
活动
ListMessageModel listMessageModel1= new ListMessageModel("dsdsdd","",ListMessageModel.TYPE_RECEIVED);
ListMessageModel listMessageModel2= new ListMessageModel("dsdsdd","",ListMessageModel.TYPE_SENT);
ListMessageModel listMessageModel3= new ListMessageModel("dsdsdd","",ListMessageModel.TYPE_RECEIVED);
ListMessageModel listMessageModel4= new ListMessageModel("dsdsdd","",ListMessageModel.TYPE_SENT);
message_list.add(listMessageModel1);
message_list.add(listMessageModel2);
message_list.add(listMessageModel3);
message_list.add(listMessageModel4);
ListMessageAdapter listMessageAdapter= new ListMessageAdapter(getApplicationContext(),message_list);
recyclerView.setAdapter(listMessageAdapter);
适配器
@Override
public void onBindViewHolder(ListMessageViewHolder holder, int position) {
//getting the product of the specified position
ListMessageModel listMessageModel= listMessageModels.get(position);
holder.textViewMessageText.setText(listMessageModel.getMessageText());
if(!TextUtils.isEmpty(listMessageModel.getMessageImage())) {
Picasso.get().load(listMessageModel.getMessageImage()).into(holder.imageViewMessageImg);
if(listMessageModel.getType()== ListMessageModel.TYPE_RECEIVED)
holder.textViewMessageText.setBackground(ContextCompat.getDrawable(mCtx,R.drawable.your_message));
}
else if(listMessageModel.getType()==ListMessageModel.TYPE_SENT){
holder.textViewMessageText.setBackground(ContextCompat.getDrawable(mCtx,R.drawable.my_message));
}