Browse Source

[1001699]增加案例界面点击item事件

zk 1 year ago
parent
commit
791cb61781

+ 19 - 2
app/src/main/java/com/datarecovery/master/module/example/ExampleAdapter.java

@@ -17,9 +17,11 @@ import java.util.List;
 
 
 public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ViewHolder> {
 public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ViewHolder> {
 
 
-    private AsyncListDiffer<ExampleBean> listDiffer;
+    private final AsyncListDiffer<ExampleBean> listDiffer;
     private final LifecycleOwner lifecycleOwner;
     private final LifecycleOwner lifecycleOwner;
 
 
+    private OnItemClickListener onItemClickListener;
+
     public ExampleAdapter(LifecycleOwner lifecycleOwner) {
     public ExampleAdapter(LifecycleOwner lifecycleOwner) {
         this.lifecycleOwner = lifecycleOwner;
         this.lifecycleOwner = lifecycleOwner;
         listDiffer = new AsyncListDiffer<>(this, new DiffUtil.ItemCallback<ExampleBean>() {
         listDiffer = new AsyncListDiffer<>(this, new DiffUtil.ItemCallback<ExampleBean>() {
@@ -35,6 +37,10 @@ public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ViewHold
         });
         });
     }
     }
 
 
+    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+        this.onItemClickListener = onItemClickListener;
+    }
+
     @NonNull
     @NonNull
     @Override
     @Override
     public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
     public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -68,10 +74,21 @@ public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ViewHold
             super(binding.getRoot());
             super(binding.getRoot());
             this.binding = binding;
             this.binding = binding;
             this.binding.setLifecycleOwner(lifecycleOwner);
             this.binding.setLifecycleOwner(lifecycleOwner);
+            binding.getRoot().setOnClickListener(v -> {
+                if (onItemClickListener != null) {
+                    onItemClickListener.onItemClick(binding.getBean());
+                }
+            });
         }
         }
 
 
         public void bind(ExampleBean itemBean) {
         public void bind(ExampleBean itemBean) {
-
+            binding.setBean(itemBean);
         }
         }
     }
     }
+
+
+    public interface OnItemClickListener {
+        void onItemClick(ExampleBean itemBean);
+    }
+
 }
 }

+ 3 - 0
app/src/main/res/layout/item_example.xml

@@ -5,6 +5,9 @@
 
 
     <data>
     <data>
 
 
+        <variable
+            name="bean"
+            type="com.datarecovery.master.data.api.bean.ExampleBean" />
     </data>
     </data>
 
 
     <androidx.constraintlayout.widget.ConstraintLayout
     <androidx.constraintlayout.widget.ConstraintLayout