HttpUtil
public String getData(){ return "牛,真牛"; }
IBaseView
public interface IBaseView {
}
IMainView
public interface IMainView
extends IBaseView {
void onSuccess(String str);}
MainPresenter
public class MainPresenter extends BasePrsenter<IMainView> { private final HttpUtil httpUtil; public MainPresenter(){ httpUtil = new HttpUtil(); } public void loadDataFromServer(){ String data = httpUtil.doGet(); getView().onSuccess(data); } }
BasePrsenter
public class BasePrsenter<
V
extends IBaseView> {
private
V
ibseView;
public void attachView(
V ibseView){
this.
ibseView = ibseView;
}
public
V getView(){
return
ibseView;
}
public void detachView(){
ibseView =
null;
}}
BaseActivity
public abstract class BaseActivity<P extends BasePrsenter> extends AppCompatActivity implements IBaseView { public P presenter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); initBaseData(); initData(); } private void initBaseData() { presenter = getPresenter(); if (presenter!=null){ presenter.attachView(this); }else { try { throw new Exception("Activity返回的presenter是null的"); }catch (Exception e){ e.printStackTrace(); } } } protected abstract P getPresenter(); protected abstract void initData(); protected abstract void initView(); }
MainActivity
public class MainActivity extends BaseActivity<MainPresenter> implements IMainView { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void initData() { presenter.loadDataFromServer(); } @Override protected MainPresenter getPresenter() { return new MainPresenter(); } @Override protected void initView() { } @Override public void onSuccess(String str) { Log.e("zhuzhu",str); } @Override protected void onDestroy() { super.onDestroy(); presenter.detachView(); } }