package com.example.agvcontroller; import static androidx.core.content.ContextCompat.startActivity; import android.content.Intent; import android.graphics.Color; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class ItemAdapter extends RecyclerView.Adapter { private List itemList; public ItemAdapter(List itemList) { this.itemList = itemList; } public static class ViewHolder extends RecyclerView.ViewHolder { TextView agvNo; TextView ip; TextView port; public ViewHolder(@NonNull View itemView) { super(itemView); agvNo = itemView.findViewById(R.id.item_agvNo); ip = itemView.findViewById(R.id.item_ip); port = itemView.findViewById(R.id.item_port); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("List","123"); } }); } } @Override public int getItemViewType(int position) { //return R.layout.item_view_linear; if (itemList == null || itemList.isEmpty()) { return R.layout.item_layout; } else { return R.layout.item_view_linear; } } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false); ViewHolder viewHolder = new ItemAdapter.ViewHolder(view); view.setOnClickListener(this::onClick); return viewHolder; } private void onClick(View view) { if (mOnItemClickListener != null) { mOnItemClickListener.onItemClick(view,(int)view.getTag()); } } private OnItemClickListener mOnItemClickListener = null; public static interface OnItemClickListener { void onItemClick(View view,int position); } public void setmOnItemClickListener(OnItemClickListener listener) { this.mOnItemClickListener = listener; } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { if (itemList == null || itemList.isEmpty()) { // 默认显示页面 //return 1; } else { Item item = itemList.get(position); int status = item.getStatus(); switch (status) { case 0: holder.itemView.setBackgroundColor(Color.GRAY); break; default: holder.itemView.setBackgroundColor(Color.GREEN); break; } holder.agvNo.setText("AGV_NO: " + item.getAgvNo()); holder.ip.setText("AGV_IP: " + item.getIp()); holder.port.setText("AGV_PORT: " + item.getPort()); holder.itemView.setTag(position); } } @Override public int getItemCount() { if (itemList == null || itemList.isEmpty()) { return 1; } else { return itemList.size(); } } public void addItem (Item item) { itemList.add(item); notifyItemInserted(itemList.size() - 1); } }