【总结】Android Fragment MVC思路
来源:互联网 发布:mac office 登陆激活 编辑:程序博客网 时间:2024/06/06 21:00
Android 中 Activity
显示界面可以由几个Fragment拼成的
每个Fragment都有自己的布局和处理布局的逻辑。
使用了Fragment将视图分拆成模板然后处理逻辑就好像
在Activity这个蓝图上拼接板块一样。因为Fragment还可以在其他界面重用。感觉满满的View解耦。
下面给出一种辅助Fragment处理逻辑的模式方法。看上去遵循了MVC的思想。
Presenter(C)——Fragment(V)
public abstract classBaseFragment<Textends Presenter<U>,U extends Ui> extends Fragment {
private Tpresenter;
public abstract T createPresenter();
public abstract U getUi();
protected BaseFragment() {
presenter =createPresenter();
}
public TgetPresenter() {
return presenter;
}
@Override
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onAttach(Contextcontext) {
super.onAttach(context);
}
@Override
public void onActivityCreated(BundlesavedInstanceState) {
super.onActivityCreated(savedInstanceState);
presenter.onUiReady(getUi());
}
@Override
public void onDestroyView() {
super.onDestroyView();
presenter.onUiDestroy(getUi());
}
@Override
public void onSaveInstanceState(BundleoutState) {
super.onSaveInstanceState(outState);
}
}
UI接口 没有方法。仅仅起令牌的作用
public interfaceUi {
}
Presenter
public abstract class Presenter<U extends Ui> { private U mUi; public void onUiReady(U ui) { mUi = ui; } public final void onUiDestroy(U ui) { onUIUnready(ui); mUi = null; } public void onUIUnready(U ui) { } public U getUi() { return mUi; }}
抽象出基础类放到UIBase包内
使用
public class ChatSessionFragment extends BaseFragment<ChatSessionPresenter, ChatSessionPresenter.ChatSessionUi> implements ChatSessionPresenter.ChatSessionUi {
@Overridepublic ChatSessionPresenter createPresenter() { return new ChatSessionPresenter();}@Overridepublic ChatSessionPresenter.ChatSessionUi getUi() { return this;}
}
public class ChatSessionPresenter extends Presenter<ChatSessionPresenter.ChatSessionUi>{
@Overridepublic void onUiReady(ChatSessionUi ui) { super.onUiReady(ui); AppApplication.getInstance().getmMessageBroadcastReceiver().addMessageNotiferListener(this);}@Overridepublic void onUIUnready(ChatSessionUi ui) { super.onUIUnready(ui);}public interface ChatSessionUi extends Ui { Context getContexts(); void refreshSessionList(List<Session> list);}
}
- 【总结】Android Fragment MVC思路
- Android Fragment MVC思路
- android中fragment实战解决思路
- android组件 fragment 重叠现象解决思路
- Android Fragment 总结
- Android Fragment总结
- Android Fragment学习总结
- android fragment学习总结
- Android Fragment总结
- Android Fragment使用总结
- Android总结 - Fragment
- Android Fragment总结
- Android-----fragment-----跳转总结
- android知识总结--Fragment
- Android Fragment使用总结
- Android-Fragment总结
- Android碎片Fragment总结
- Android Fragment总结
- 驱动框架4——在内核中添加或去除某个驱动
- OPC UA---程序入门
- BZOJ1613 [Usaco2007 Jan]Running贝茜的晨练计划
- 二叉搜索树的后序遍历序列
- 566D
- 【总结】Android Fragment MVC思路
- Ajax+SpringMVC+JSON登录验证
- 数据库学习|学生代码笔记---002
- 【总结】学习车牌识别matlab源码
- TypeScript入门教程
- 第一个Hello Django(二)
- git 常用命令
- Java常用类之Math类、File类
- 关于Mybatis中#{}和${}的区别