仿京东的一个MVC框架的使用
来源:互联网 发布:r软件使用统计分析 编辑:程序博客网 时间:2024/05/17 03:59
1.application的信息
在线面中initDB( )就是用来初始化一个数据库的。
public class JDApplication extends LitePalApplication { public RUserInfo mUserInfo; public static RequestQueue mRequestQueue; @Override public void onCreate() { super.onCreate(); initDB(); mRequestQueue = Volley.newRequestQueue(this); } private void initDB() { //初始化一个db LitePal.initialize(this); }}
2.Veiw层
2.1BaseActivity的相关
在实现了BaseActivity后,会自动的实现abstract的方法。
- onModelChanged()方法:这个方法是一个回调的方法。调用这个而方法后,
/** * @author Holly * @time 2017/2/6 18:50 * @desc ${TODD} */public abstract class BaseActivity extends FragmentActivity implements IModelChangeListener { protected BaseController mController; /*-----------创建一个handler---------*/ Handler mHandler = new Handler(){ public void handleMessage(Message msg){ handleUIMessage( msg); } }; protected void handleUIMessage(Message msg) { //让子类去实现相应的逻辑 } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去掉标题 requestWindowFeature(Window.FEATURE_NO_TITLE); } //创建一个抽象的方法,让所有的子类都去实现 protected abstract void initUI(); protected void initController() { } @Override public void onModelChanged(int action,Object returnBean) { //这个地方要把bean传到主线程中 mHandler.obtainMessage(action, returnBean).sendToTarget(); } public long getUserId(){ JDApplication application = (JDApplication) getApplication(); return application.mUserInfo.getId(); }}
2.2BaseFragment的设置
类比上面的BaseActivity,可以如下
public abstract class BaseFragment extends Fragment implements IModelChangeListener { protected BaseController mController; /*-----------创建一个handler---------*/ Handler mHandler = new Handler() { public void handleMessage(Message msg) { handleUIMessage(msg); } }; protected void handleUIMessage(Message msg) { //让子类去实现相应的逻辑 } //创建一个抽象的方法,让所有的子类都去实现 protected void initController() { } @Override public void onModelChanged(int action, Object returnBean) { //这个地方要把bean传到主线程中 mHandler.obtainMessage(action, returnBean).sendToTarget(); } protected abstract void initUI(); public View findViewById(int id) { View view = getActivity().findViewById(id); return view; } public JDApplication getJDApplication() { JDApplication application = (JDApplication) getActivity().getApplication(); return application; }}
3.C层的设置—BaseController
- sendAsyncMessage(final int action, final Object… values):这个方法是用来在子线程中调用起来的,会在View层发送网络请求的时候调用,也就是使用了一个handMessage的方法。handMessage的方法由具体的ccotroller子类去实现。
public abstract class BaseController { //创建一个上下文 protected Context mContext; public BaseController(Context context) { mContext = context; } protected IModelChangeListener mListener; /*-----------专门用来创建线程---------*/ public void sendAsyncMessage(final int action, final Object... values) { //在子线程中执行这个方法 new Thread() { public void run() { handMessage(action, values); } }.start(); } protected abstract void handMessage(int action, Object... values); public void setOnModelListener(IModelChangeListener listener) { //进行监听 mListener = listener; }}
0 0
- 仿京东的一个MVC框架的使用
- 使用一般处理程序,模拟ASP.NET MVC,开发一个轻量级的学习版MVC框架。
- .NET : 一个比较轻型的MVC框架
- 一个仿Struts的MVC框架
- 一个简单的python MVC框架(1)
- 一个简单的Python MVC框架(2)
- 实现一个简陋的MVC框架
- 做一个自己的MVC框架[php]
- php封装一个简单的MVC框架
- 封装一个自己的mvc框架
- 搭建一个简单的Spring MVC框架
- 一个扩展的MVC框架,完整诠释MVC概念
- 自己开发一个简单的mvc框架(类似spring mvc)
- SpringMVC,Spring MVC是一个基于Model2的MVC框架
- 使用PHP开发自己的MVC框架
- 使用PHP搭建自己的MVC框架
- 使用PHP搭建自己的MVC框架
- 使用PHP搭建自己的MVC框架
- 增加数据存储过程
- 【揭秘】内部优惠券是真的吗?独家揭秘微信淘宝天猫内部优惠券群的真相!
- ReactiveCocoa 小总结
- jQuery选择器之基本筛选选择器
- 完整java开发中JDBC连接数据库代码和步骤
- 仿京东的一个MVC框架的使用
- includeos 创建 输出一个hello world的过程
- android studio NDK使用,编译c生成.so实践记录
- 分享一款很实用的数据恢复软件 easyrecovery
- spring配置文件中分别使用多个properties文件
- MySQL5.7 运行SELECT DISTINCT 遇到3065问题
- Linux下快速查看CPU使用情况的相关命令
- 前端框架与库的区别
- 数据库连接错误The Network Adapter could not establish the connection