RoomEditAdapter.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.rdiot.yx485.adapter;
  2. import android.view.LayoutInflater;
  3. import android.view.View;
  4. import android.view.ViewGroup;
  5. import androidx.annotation.NonNull;
  6. import androidx.recyclerview.widget.RecyclerView;
  7. import com.rdiot.yx485.bean.DeviceRoomListBean;
  8. import com.rdiot.yx485.databinding.RoomItemEditBinding;
  9. import java.util.List;
  10. public class RoomEditAdapter extends RecyclerView.Adapter<RoomEditAdapter.ViewHolder> {
  11. private final OnDeleteClickListener mDeleteClickListener;
  12. private final List<DeviceRoomListBean.RoomBean> mData;
  13. public RoomEditAdapter(List<DeviceRoomListBean.RoomBean> data, OnDeleteClickListener listener) {
  14. mData = data;
  15. mDeleteClickListener = listener;
  16. }
  17. @NonNull
  18. @Override
  19. public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  20. RoomItemEditBinding binding = RoomItemEditBinding.inflate(
  21. LayoutInflater.from(parent.getContext()),
  22. parent,
  23. false
  24. );
  25. return new ViewHolder(binding);
  26. }
  27. @Override
  28. public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
  29. DeviceRoomListBean.RoomBean room = mData.get(position);
  30. holder.binding.roomName.setText(room.name);
  31. holder.binding.roomIcon.setOnClickListener(v -> {
  32. if (mDeleteClickListener != null) {
  33. mDeleteClickListener.onDeleteClick(room.record_id);
  34. }
  35. });
  36. int count = room.devices == null ? 0 : room.devices.size();
  37. String deviceCount = String.format("%s个设备", count);
  38. holder.binding.deviceCount.setText(deviceCount);
  39. // holder.binding.deviceCount.setOnClickListener(view -> {
  40. // Intent intent = new Intent(holder.binding.deviceCount.getContext(), RoomSetDeviceActivity.class);
  41. // intent.putExtra("roomid", room.record_id);
  42. // intent.putExtra("number", deviceCount);
  43. // intent.putExtra("name", room.name);
  44. // holder.binding.deviceCount.getContext().startActivity(intent);
  45. // });
  46. holder.binding.bottomLine.setVisibility(position == mData.size() - 1 ? View.INVISIBLE : View.VISIBLE);
  47. }
  48. @Override
  49. public int getItemCount() {
  50. return mData.size();
  51. }
  52. public List<DeviceRoomListBean.RoomBean> getData() {
  53. return mData;
  54. }
  55. public interface OnDeleteClickListener {
  56. void onDeleteClick(String roomId);
  57. }
  58. static class ViewHolder extends RecyclerView.ViewHolder {
  59. RoomItemEditBinding binding;
  60. ViewHolder(RoomItemEditBinding binding) {
  61. super(binding.getRoot());
  62. this.binding = binding;
  63. }
  64. }
  65. }