Android代码强制区分规范
2015-11-14 16:16
399 查看
前言
Android代码规范是个很模糊又很敏感的话题,有时候很多同事都很不愿意直面对这个问题,谁愿意说自己的代码很烂,其实人往往不愿意改变,就很难再进步,我就在无数次跌倒中有站起来,下面给大家讲讲在实战中几招实用的代码归类和合并,让代码更清晰方便又易于维护。
public abstract class BaseActivity extends Activity implements HttpCallback { public RequestParams mParams; public Click click; HashMap<String, String> UMENG_MAP = new HashMap<String, String>(); private Context mcontext; protected boolean bBackGround; public BaseApplication app; public String mDeviceId; @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); click = new Click(); mcontext=this.getApplicationContext(); if (mParams == null) mParams = new RequestParams(); app=(BaseApplication) getApplication(); mDeviceId =app.mDeviceId; initView(bundle); initLisitener(); initData(bundle); } }
大家上面看到了initview、initLisitener、initdata。不要小看了这三个函数,这三个函数就把所有业务层实现代码全归类,既清晰又方便,以此类推fragement、dialog都这样归类,让后面开发者都习惯和遵守这个规定。
再说第二个优化之处,事件提炼合并,在android里面事件用的比较多。如果一个点击new一个事件,代码会大大不美观、不合理、浪费开发时间。
@Override protected void initLisitener() { setOnClickListener(R.id.back_btn); mListView.setXListViewListener(xListViewListener); mListView.setOnItemClickListener(itemClick); } AdapterView.OnItemClickListener itemClick = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { try { ArticleData articleData = articleEntity.list.get(position - 1); Intent intent = new Intent(mContext, ArticleDetailActivity.class); intent.putExtra("entity", articleData); startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } }; @Override public void treatClickEvent(int id) { super.treatClickEvent(id); switch (id) { case R.id.back_btn: AppFinish(); break; } }
大家看到了initlistener中第一行代码
setOnClickListener(R.id.back_btn);
设置某个操作事件,一行代码搞定,那么监听在哪昵!就在treatclickevent函数中,这个函数里面通过所监听的id,直接执行事件处理,具体实现内部逻辑如下。
public void setOnClickListener(int id) { if (click == null) click = new Click(); findViewById(id).setOnClickListener(click); } private class Click implements OnClickListener { @Override public void onClick(View v) { int id = v.getId(); treatClickEvent(id); treatClickEvent(v); } }
大家看到其实很简单,上面这个优化也可以写到dialog和fragment中,希望大家能有很多这种优化、规范的建议,欢迎大家留言,谢谢。
相关文章推荐
- Android view的工作原理(Android开发艺术探索随笔)
- Android Studio 导入jar ,so 及 开源库
- 关于Android中ImageView中tint属性的一点点整理
- android:descendantFocusability用法简析
- Android-自定义多TAB悬浮控件实现蘑菇街首页效果
- Android性能分析工具-TraceView
- 推荐大家一个不错android模拟器工具Genymotion
- android studio 添加快捷按钮.
- Android学习:TextUtils类介绍
- 关于android中数据持久化存储的方法的知识整理
- 一个android的各种控件库
- Android实现TextView字符串波浪式跳动
- 安卓学习笔记一 —— Activity的一些使用技巧
- Android的Message机制(简单小结)
- 环境配置正确的前提下,Run as 不出现Android Application的问题
- android 数据存储二使用文件存储数据
- Android 设置声音时出现按键音
- Android记录6--ViewPage+Fragment的使用例子
- Android动画学习笔记-Android Animation
- Android Note项目