使用框架帮助Activity规范化



对本文有任何问题,可加我的个人微信询问:kymjs666

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, "提示文字");