mvp

来源:互联网 发布:淘宝网开店要交钱吗 编辑:程序博客网 时间:2024/04/29 05:48

presenters

/** * Created by lyl on 2016/3/17. */public abstract class MVPBasePresenter<V extends MVPView> implements MVPPresenter<V> {    private WeakReference<V> viewRef;    public void attachView(V view) {        viewRef = new WeakReference<V>(view);    }    protected V getView() {        return viewRef.get();    }    protected boolean isViewAttached() {        return viewRef != null && viewRef.get() != null;    }    public void detachView() {        if (viewRef != null) {            viewRef.clear();            viewRef = null;        }    }}-------------------------------------------------------------------------------------/** * Created by lyl on 2016/3/17. */public interface MVPPresenter<V extends MVPView> {    void attachView(V view);    void detachView();}-------------------------------------------------------------------------------------/** * Created by lyl on 2016/3/17. */public interface OrderShowPresenter extends MVPPresenter<IOrderShow> {    void login();    void linkSocket();}-------------------------------------------------------------------------------------/** * Created by lyl on 2016/3/17. */public interface OrderShowPresenter extends MVPPresenter<IOrderShow> {    void login();    void linkSocket();}/** * Created by lyl on 2016/3/17. */public class OrderShowPresenterImpl extends MVPBasePresenter<IOrderShow> implements OrderShowPresenter {    @Override    public void login() {         getView().ShowOrderInfo();    }}-------------------------------------------------------------------------------------

views

/** * Created by lyl on 2016/3/17. */public abstract class MvpBaseActivity<P extends MVPPresenter> extends Activity implements MVPView {    protected P presenter;    protected abstract P createPresenter();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        presenter = createPresenter();        if (presenter == null) {            throw new NullPointerException("Presenter is null! Do you return null in createPresenter()?");        }        presenter.attachView(this);    }    @Override    protected void onDestroy() {        super.onDestroy();        presenter.detachView();    }    @Override    public Context getContext() {        return this;    }}-------------------------------------------------------------------------------------/** * Root class for view classes */public interface MVPView {    android.content.Context getContext();}-------------------------------------------------------------------------------------/** * Created by lyl on 2016/3/17. */public interface IOrderShow extends MVPView {    void ShowOrderInfo(List<OrderPanding> listPanding,List<OrderPanding> listProcess,List<OrderPanding> listSuccess);}

activity

public class MainActivity extends MvpBaseActivity<OrderShowPresenter> implements IOrderShow {    @Override    protected OrderShowPresenter createPresenter() {        return new OrderShowPresenterImpl();    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        presenter.login();    }    @Override    public void ShowOrderInfo() {}}
0 0
原创粉丝点击