根据条件更改项目背景颜色

时间:2021-02-26 14:12:52

标签: android-recyclerview

我正在尝试从 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));
    }

0 个答案:

没有答案
相关问题