|
|
@@ -3,6 +3,8 @@ package com.miekir.mvp.view;
|
|
|
import android.os.Bundle;
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
+import androidx.lifecycle.MutableLiveData;
|
|
|
+import androidx.lifecycle.Observer;
|
|
|
|
|
|
import com.miekir.mvp.base.BaseFragment;
|
|
|
import com.miekir.mvp.base.DataResult;
|
|
|
@@ -65,9 +67,19 @@ public abstract class BaseMVPFragment extends BaseFragment implements IView {
|
|
|
InjectPresenter injectPresenter = field.getAnnotation(InjectPresenter.class);
|
|
|
if (injectPresenter != null) {
|
|
|
try {
|
|
|
+ //创建一个观察者去更新UI
|
|
|
+ final Observer<DataResult> observer = new Observer<DataResult>() {
|
|
|
+ @Override
|
|
|
+ public void onChanged(final DataResult result) {
|
|
|
+ onDataResult(result);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ MutableLiveData<DataResult> liveData = new MutableLiveData<DataResult>();
|
|
|
+ liveData.observe(this, observer);
|
|
|
+
|
|
|
Class<? extends BasePresenter> type = (Class<? extends BasePresenter>) field.getType();
|
|
|
BasePresenter mInjectPresenter = type.newInstance();
|
|
|
- // todo
|
|
|
+ mInjectPresenter.setLiveData(liveData);
|
|
|
//mInjectPresenter.attachView(this);
|
|
|
field.setAccessible(true);
|
|
|
field.set(this, mInjectPresenter);
|
|
|
@@ -132,7 +144,7 @@ public abstract class BaseMVPFragment extends BaseFragment implements IView {
|
|
|
mDataMethodList.clear();
|
|
|
}
|
|
|
|
|
|
- public void onDataResult(DataResult result) {
|
|
|
+ private void onDataResult(DataResult result) {
|
|
|
for (Method method : mDataMethodList) {
|
|
|
try {
|
|
|
method.invoke(this, result.getCode(), result.getMessage(), result.getBean());
|