詹子聪 пре 5 година
родитељ
комит
a1d0bf99f6

+ 1 - 1
app/src/main/java/com/miekir/newmvp/MainActivity.java

@@ -37,7 +37,7 @@ public class MainActivity extends BaseMVPActivity {
 
     // todo 检查该注解的参数个数,不是3个就抛出异常
     @DataMethod
-    public void onDataCome1(String code, String msg, TestBean1 data) {
+    public void onDataCome1(int code, String msg, TestBean1 data) {
         Log.e("ttttt", data.getName());
     }
 

+ 1 - 1
app/src/main/java/com/miekir/newmvp/TestPresenter1.java

@@ -9,7 +9,7 @@ import com.miekir.mvp.presenter.BasePresenter;
  * @date 2020/10/6 20:53
  * Description:
  */
-public class TestPresenter1 extends BasePresenter<TestBean1> {
+public class TestPresenter1 extends BasePresenter {
     public void go() {
         new Thread(new Runnable() {
             @Override

+ 5 - 5
mvp/src/main/java/com/miekir/mvp/base/DataResult.java

@@ -7,22 +7,22 @@ package com.miekir.mvp.base;
  * @date 2020/10/6 21:30
  * Description:
  */
-public class DataResult<B> {
+public class DataResult {
     private int code;
     private String message;
-    private B bean;
+    private Object bean;
 
-    public DataResult(int code, String message, B bean) {
+    public DataResult(int code, String message, Object bean) {
         this.code = code;
         this.message = message;
         this.bean = bean;
     }
 
-    public B getBean() {
+    public Object getBean() {
         return bean;
     }
 
-    public void setBean(B bean) {
+    public void setBean(Object bean) {
         this.bean = bean;
     }
 

+ 3 - 4
mvp/src/main/java/com/miekir/mvp/presenter/BasePresenter.java

@@ -3,11 +3,10 @@ package com.miekir.mvp.presenter;
 import androidx.lifecycle.MutableLiveData;
 
 import com.miekir.mvp.base.DataResult;
-import com.miekir.mvp.bean.BaseBean;
 
 import java.lang.ref.WeakReference;
 
-public abstract class BasePresenter<B extends BaseBean> {
+public abstract class BasePresenter {
 
     private WeakReference<MutableLiveData<DataResult>> mLiveData;
 
@@ -15,7 +14,7 @@ public abstract class BasePresenter<B extends BaseBean> {
         mLiveData = new WeakReference<>(liveData);
     }
 
-    public void post(int code, String msg, B dataBean) {
+    public void post(int code, String msg, Object dataBean) {
         if (mLiveData == null) {
             return;
         }
@@ -25,7 +24,7 @@ public abstract class BasePresenter<B extends BaseBean> {
             return;
         }
 
-        liveData.postValue(new DataResult<B>(code, msg, dataBean));
+        liveData.postValue(new DataResult(code, msg, dataBean));
     }
 
     public void detachView() {

+ 5 - 8
mvp/src/main/java/com/miekir/mvp/view/BaseMVPActivity.java

@@ -19,14 +19,10 @@ import java.util.List;
 
 /**
  * 利用反射,BaseMVPActivity将会查找子类中有{@link InjectPresenter}注解的成员变量,
- * 筛选出父类是{@link BasePresenter}的成员变量,对它们进行实例化,此时BaseMVPActivity的子类即拥有了
- * 具体Presenter的引用,如拥有了LoginPresenter的引用,可以调用具体Presenter的具体方法;
- * 然后BaseMVPActivity调用{@link BasePresenter}的一个方法把自身的{@link IView}类型引用
- * 传递给{@link BasePresenter},这样{@link BasePresenter}的子类也就拥有了{@link IView}类型引用;
- * 注意:因为注解是在BaseMVPActivity的子类声明的,子类实现了{@link IView}的子类如ILoginView,
- * 这个子类是一个拥有特殊回调接口的,如拥有登录成功、登录失败等接口,
- * 也就是说把具体的子类传this引用的时候,把具体的ILoginView引用传给了具体的Presenter,并通过{@link BasePresenter}
- * 的泛型让getView方法返回具体的ILoginView,所以{@link BasePresenter}的子类还可以访问到ILoginView的特殊方法
+ * 筛选出父类是{@link BasePresenter}的成员变量,对它们进行实例化
+ * 然后BaseMVPActivity调用{@link BasePresenter}的一个方法把自身的{@link androidx.lifecycle.LiveData}类型引用
+ * 传递给{@link BasePresenter},这样{@link BasePresenter}的子类就可以调用相应Activity的LiveData;
+ *
  */
 public abstract class BaseMVPActivity extends BaseActivity implements IView {
     private List<Method> mDataMethodList = new ArrayList<>();
@@ -94,6 +90,7 @@ public abstract class BaseMVPActivity extends BaseActivity implements IView {
                             onDataResult(result);
                         }
                     };
+                    // liveData也可以在Presenter创建,然后提供方法给Activity获取
                     MutableLiveData<DataResult> liveData = new MutableLiveData<DataResult>();
                     liveData.observe(this, observer);