1. 程式人生 > >android mvp快速開發框架介紹(繼續dileber)

android mvp快速開發框架介紹(繼續dileber)

繼續為大家介紹android mvp開源框架 dileber

官方交流qq群:171443726

我個人qq:297165331~~有什麼問題也可以諮詢~~

這節5主要介紹 主要功能  presenter 和 delegate的使用

寫一個類繼承於AppViewDelegate

public class SplashViewDelegate extends AppViewDelegate{


    @Override
public int getRootLayoutId() {
        return R.layout.activity_splash;
}

    LinearLayout splash_layout
; ImageView imageView; @Override public void initWidget() { super.initWidget(); splash_layout = bindView(R.id.splash_layout); imageView = bindView(R.id.imageView); } }

如圖需要實現 getRootLayoutId方法,這個方法主要就是返回 splashactivity的layout

SplashViewDelegate
這個delegate就是專門為splashactivity產生的類

initwidget就是可以初始化一些元件

你可以把你要初始化的元件放到這裡,還可以在這個類裡寫一些展示效果

展示效果可以寫到view介面

再通過對介面的程式設計,達到需要的效果

implements ISplashView{

如果你想獲得當前activity

則可以使用

getActivity();

獲得當前layout

getRootView()

然後開始講解 presenter了

首先我想講兩個特殊的註解

@CloseStatusBar
@CloseTitle
public class SplashActivity extends ActivityPresenter<SplashViewDelegate>  {
一個是
@CloseStatusBar
他的作用是可以使得當前activity全屏

一個是

@CloseTitle
他的作用是可以使得當前activity的title消失

上面的兩個註解主要為了方便開發

presenter一般使用程式碼如下

public class SplashActivity extends ActivityPresenter<SplashViewDelegate>  {

    @Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
ISplashScm imageSrc = new SplashScm();
imageSrc.showSplashResourceImage((ImageView) viewDelegate.get(R.id.imageView));
GoodsListScm goodsListScm = new GoodsListScm();
goodsListScm.getGoodsList(null, null, null, null, null, new OnGoodsListListener<GoodsModel>() {
            @Override
public void before() {
                viewDelegate.loading();
}

            @Override
public void success(GoodsModel model) {
                String ss = HJson.toJson(model);
SLog.i(">>>>>>",ss);
viewDelegate.loadDialogDismiss();
}

            @Override
public void failed() {
                viewDelegate.loadDialogDismiss();
}
        });
}

    @Override
protected Class<SplashViewDelegate> getDelegateClass() {
        return SplashViewDelegate.class;
}

    @Override
protected void bindEvenListener() {
        super.bindEvenListener();
}


    @Override
public void onClick(View view) {

    }
}

你可以在bindevenlistener中編寫監聽器程式碼,

如下

@Override
protected void bindEvenListener() {
    super.bindEvenListener();
viewDelegate.setOnClickListener(this,R.id.mask_left);
}
或者如下
viewDelegate.setOnClickListener(this,R.id.mask_left,R.id.confirm_button);
或者如下
viewDelegate.setOnClickListener(this,button1,view2,view3);

如果你想展示 toast

我寫了一個自定義的toast幫助你使用

viewDelegate.toast("ddddd", Toast.LENGTH_SHORT);

還有一個不錯的 載入框

viewDelegate.loading();
viewDelegate.loadDialogDismiss();

注意成對使用

還有一個確定取消框

viewDelegate.dialogOk("eeee", new DialogLinstener() {
    @Override
public void confirm(Dialog dialog) {
        
    }

    @Override
public void cancel(Dialog dialog) {

    }
});

錯誤對話方塊

viewDelegate.showAlert(SplashViewDelegate.DIALOG_ERROR,"ddd");

成功對話方塊

viewDelegate.showAlert(SplashViewDelegate.DIALOG_SUCCESS,"ddd");

最基本的使用就是這麼多了

下節我將對我封裝的一些好用的工具進行講解