Browse Source

优化onclick注解

yanyi 3 years ago
parent
commit
633cc86270

+ 2 - 0
viewbind/src/main/AndroidManifest.xml

@@ -1,4 +1,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.benyanyi.viewbind">
 
+
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 </manifest>

+ 6 - 1
viewbind/src/main/java/com/benyanyi/viewbind/annotation/OnClick.java

@@ -1,5 +1,9 @@
 package com.benyanyi.viewbind.annotation;
 
+import android.view.View;
+
+import androidx.annotation.IdRes;
+
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -29,7 +33,8 @@ import java.lang.annotation.Target;
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
 public @interface OnClick {
-    int[] value();
+    
+    @IdRes int[] value() default {View.NO_ID};
 
     boolean isCheckNet() default false;
 

+ 3 - 0
viewbind/src/main/java/com/benyanyi/viewbind/inject/ViewInject.java

@@ -78,6 +78,9 @@ public class ViewInject {
                 int[] values = onClick.value();
                 if (values.length > 0) {
                     for (int value : values) {
+                        if (value == View.NO_ID) {
+                            return;
+                        }
                         View view = inject.find(value);
                         String netErrorMsg = onClick.netErrorMsg();
                         boolean isCheckNet = onClick.isCheckNet();