android mvp快速開發框架介紹(繼續dileber)
阿新 • • 發佈:2019-01-22
繼續為大家介紹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");
最基本的使用就是這麼多了
下節我將對我封裝的一些好用的工具進行講解