package com.dayu.pipirrapp.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.RecyclerView; import com.dayu.pipirrapp.R; import com.dayu.pipirrapp.activity.IssueListActivity; import com.dayu.pipirrapp.bean.net.IssueResult; import com.dayu.pipirrapp.databinding.ItemIssueBinding; import com.dayu.pipirrapp.databinding.ItemNoMoreBinding; import java.util.List; /** * IssueAdapter - * * @author zuoxiao * @version 1.0 * @since 2024-12-10 */ public class IssueAdapter extends BaseRecyclerAdapter { List recordsList; IssueListActivity activity; public IssueAdapter(IssueListActivity activity, List recordsList) { this.activity = activity; this.recordsList = recordsList; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (viewType == VIEW_TYPE_EMPTY) { ItemNoMoreBinding emptyView = DataBindingUtil.inflate((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.item_no_more, parent, false); return new BaseRecyclerAdapter.ViewHolderEmpty(emptyView); } else { ItemIssueBinding binding = DataBindingUtil.inflate((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.item_issue, parent, false); return new ViewHolder(binding, activity); } } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolder) { if (recordsList.size() > 0) { IssueResult record = recordsList.get(position); ((ViewHolder) holder).getBinding().setData(record); ViewHolder mHolder = ((ViewHolder) holder); //状态;1-未受理,2-已受理,3已删除 switch (record.getStateId()) { case 1://未受理 mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.black, null)); mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_no_bg, null)); mHolder.mBinding.replyContentLL.setVisibility(View.GONE); mHolder.mBinding.replyTimeLL.setVisibility(View.GONE); break; case 2://已受理 mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.white, null)); mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_wait_bg, null)); mHolder.mBinding.replyContentLL.setVisibility(View.VISIBLE); mHolder.mBinding.replyTimeLL.setVisibility(View.VISIBLE); break; case 3://3已删除 mHolder.mBinding.stateText.setTextColor(activity.getResources().getColor(R.color.white, null)); mHolder.mBinding.stateText.setBackground(activity.getResources().getDrawable(R.drawable.order_state_reject_bg, null)); mHolder.mBinding.replyContentLL.setVisibility(View.VISIBLE); mHolder.mBinding.replyTimeLL.setVisibility(View.VISIBLE); break; } } } } @Override public int getItemCount() { //同时这里也需要添加判断,如果mData.size()为0的话,只引入一个布局,就是emptyView // 那么,这个recyclerView的itemCount为1 if (recordsList != null) { if (recordsList.size() == 0) { return 1; } return recordsList.size(); } else { return 1; } } @Override public int getItemViewType(int position) { if (recordsList != null) { if (recordsList.size() == 0) { return VIEW_TYPE_EMPTY; } else { return VIEW_TYPE_ITEM; } } else { return VIEW_TYPE_EMPTY; } } static class ViewHolder extends RecyclerView.ViewHolder { ItemIssueBinding mBinding; public ItemIssueBinding getBinding() { return mBinding; } public void setBinding(ItemIssueBinding binding) { this.mBinding = binding; } public ViewHolder(ItemIssueBinding itemView, IssueListActivity issueListActivity) { super(itemView.getRoot()); this.mBinding = itemView; mBinding.setItemclidk(issueListActivity); } } }