詹子聪 5 роки тому
батько
коміт
45e1974907

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

@@ -5,6 +5,7 @@ import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 
+import com.miekir.mvp.base.DataResult;
 import com.miekir.mvp.presenter.InjectPresenter;
 import com.miekir.mvp.view.BaseMVPActivity;
 
@@ -35,6 +36,11 @@ public class MainActivity extends BaseMVPActivity implements ITestView {
         });
     }
 
+    @Override
+    public void onDataResult(DataResult result) {
+        Log.e("mmmmm", "code: " + result.getCode());
+    }
+
     @Override
     public void onLoginResult(final int code, String msg) {
         runOnUiThread(new Runnable() {

+ 2 - 2
app/src/main/java/com/miekir/newmvp/TestPresenter.java

@@ -1,6 +1,6 @@
 package com.miekir.newmvp;
 
-import com.miekir.mvp.base.BaseResult;
+import com.miekir.mvp.base.DataResult;
 import com.miekir.mvp.presenter.BasePresenter;
 
 /**
@@ -18,7 +18,7 @@ public class TestPresenter extends BasePresenter<ITestView> {
                 try {
                     Thread.sleep(10000);
                     //getView().onLoginResult(3, "ddd");
-                    getLiveData().postValue(new BaseResult(0, "dd"));
+                    getLiveData().postValue(new DataResult(0, "dd"));
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

+ 2 - 2
mvp/src/main/java/com/miekir/mvp/base/BaseResult.java

@@ -7,11 +7,11 @@ package com.miekir.mvp.base;
  * @date 2020/10/6 21:30
  * Description:
  */
-public class BaseResult {
+public class DataResult {
     private int code;
     private String message;
 
-    public BaseResult(int code, String message) {
+    public DataResult(int code, String message) {
         this.code = code;
         this.message = message;
     }

+ 10 - 11
mvp/src/main/java/com/miekir/mvp/presenter/BasePresenter.java

@@ -1,31 +1,30 @@
 package com.miekir.mvp.presenter;
 
-import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
-import com.miekir.mvp.ProxyHandler;
-import com.miekir.mvp.base.BaseResult;
+import com.miekir.mvp.base.DataResult;
 import com.miekir.mvp.view.IView;
 
 import java.lang.ref.WeakReference;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
 
 public abstract class BasePresenter<V extends IView> {
     private WeakReference<V> wrf;
 
-    private MutableLiveData<BaseResult> mLiveData;
-    public void attachView(V view, MutableLiveData<BaseResult> liveData) {
+    private MutableLiveData<DataResult> mLiveData;
+    public void attachView(V view) {
         wrf = new WeakReference<V>(view);
+    }
+
+    public void setLiveData(MutableLiveData<DataResult> liveData) {
         mLiveData = liveData;
     }
 
-//    public V getView() {
-//        return wrf == null ? null : wrf.get();
-//    }
+    public V getView() {
+        return wrf == null ? null : wrf.get();
+    }
 
 
-    public MutableLiveData<BaseResult> getLiveData() {
+    public MutableLiveData<DataResult> getLiveData() {
         return mLiveData;
     }
 

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

@@ -3,12 +3,11 @@ package com.miekir.mvp.view;
 import android.os.Bundle;
 import android.util.Log;
 
-import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 import androidx.lifecycle.Observer;
 
 import com.miekir.mvp.base.BaseActivity;
-import com.miekir.mvp.base.BaseResult;
+import com.miekir.mvp.base.DataResult;
 import com.miekir.mvp.presenter.BasePresenter;
 import com.miekir.mvp.presenter.InjectPresenter;
 
@@ -44,20 +43,19 @@ public abstract class BaseMVPActivity extends BaseActivity implements IView {
             if (injectPresenter != null) {
                 try {
                     //创建一个观察者去更新UI
-                    final Observer<BaseResult> observer = new Observer<BaseResult>() {
+                    final Observer<DataResult> observer = new Observer<DataResult>() {
                         @Override
-                        public void onChanged(final BaseResult result) {
-                            Log.e("mmmmm", "code: " + result.getCode());
+                        public void onChanged(final DataResult result) {
+                            onDataResult(result);
                         }
                     };
-
-                    MutableLiveData<BaseResult> liveData = new MutableLiveData<BaseResult>();
+                    MutableLiveData<DataResult> liveData = new MutableLiveData<DataResult>();
                     liveData.observe(this, observer);
 
-
                     Class<? extends BasePresenter> type = (Class<? extends BasePresenter>) field.getType();
                     BasePresenter mInjectPresenter = type.newInstance();
-                    mInjectPresenter.attachView(this, liveData);
+                    mInjectPresenter.attachView(this);
+                    mInjectPresenter.setLiveData(liveData);
                     field.setAccessible(true);
                     field.set(this, mInjectPresenter);
                     mInjectPresenters.add(mInjectPresenter);
@@ -84,5 +82,6 @@ public abstract class BaseMVPActivity extends BaseActivity implements IView {
     }
 
 
+    public abstract void onDataResult(DataResult result);
 
 }

+ 1 - 1
mvp/src/main/java/com/miekir/mvp/view/BaseMVPFragment.java

@@ -39,7 +39,7 @@ public abstract class BaseMVPFragment extends BaseFragment implements IView {
                     Class<? extends BasePresenter> type = (Class<? extends BasePresenter>) field.getType();
                     BasePresenter mInjectPresenter = type.newInstance();
                     // todo
-                    mInjectPresenter.attachView(this, null);
+                    mInjectPresenter.attachView(this);
                     field.setAccessible(true);
                     field.set(this, mInjectPresenter);
                     mInjectPresenters.add(mInjectPresenter);