使用框架帮助Activity规范化

摘要

本文原创,转载请注明地址:http://kymjs.com/code/2015/05/10/01

写给那些在用、想用、还没有用过KJFrame的朋友。 KJFrameForAndroid总共分为四个功能:Activity继承链的规范,Http数据请求和上传下载,Bitmap大图加载以及ListView滚动时只加载内存图片,数据库对象存储与集合对象存储。还有一个独立出来的功能CJFrame插件化开发框架,支持启动在你的手机中未安装的apk应用。

KJFrameForAndroid下载地址:https://github.com/kymjs/KJFrameForAndroid

Activity继承链

使用你的Activity(Fragment)继承自KJActivity(KJFragment)即可。在通常的开发中,我们经常把数据初始化、findview、控件的属性设置等等的方法都写在一个onCreate()中,这样会造成onCreate方法过于臃肿,而使用KJFrame模块的基类Activity(Fragment)可以轻松解决这个问题。

  • 在基类中各个方法的调用顺序:
setRootView(); //用于调用setContent();
@BindView //setRootView执行后将会执行注解绑定
initDataFromThread();(执行在异步,用于做耗时操作)
threadDataInited();(initDataFromThread() 执行完成后将会回调)
initData(); //用于初始化数据
initWidget(); //用于设置控件内容
registerBroadcast(); //用于注册广播与上下文菜单
  • 注解式绑定控件并设置监听
    使用UILibrary,你可以只需要一行代码就完成控件的findview并设置点击事件,就像下面的示例,只需要添加@BindView注解就能实现了。
@BindView(id = R.id.xxx, click = true);
private Button btn;

这样就相当于已经调用了

private Button btn;
btn = findViewById(R.id.xxx);
btn.setOnClickListener(this);

当然,是否一定要设置点击事件是由你来决定,如果不设置,那么可以不写click=true这句话。

  • ViewInject功能与Toast优化
    每次在写Toast的时候都得要写上一长串代码,很麻烦。那么KJFrame很人性化的对Toast做了封装,你只需要调用
ViewInject.toast("提示文字");

同时ViewInject还封装了常用的弹出式对话框

//弹出一个选择弹窗,同时具有重载方法,
//可以自定义点击确定按钮的监听器以及弹窗的内容文字
getExitDialog(Context context);
getDateDialog(String title, TextView textView)
  • *用法
    如果受项目限制,没办法继承KJFrame的基类,那么你仍旧可以使用注解式绑定与Toast优化功能,但是使用办法略有不同。
    如果不继承基类,在使用注解@BindView时需要在Activity的setContent()方法之后手动调用
AnnotateUtil.initBindView(this);

在Toast使用时由于没有继承框架基类,则需要手动传入Context对象

ViewInject.toast(this, "提示文字");
上一篇:[Android] TextView长按复制实现方法小结(转载)


下一篇:嵌套在ScrollView中的TextView控件可以*滚动