摘要

本文原创,转载请注明地址: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, "提示文字");

使用框架帮助Activity规范化的更多相关文章

  1. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

  2. Android核心分析之二十二Android应用框架之Activity

    3 Activity设计框架 3.1 外特性空间的Activity    我们先来看看,android应用开发人员接触的外特性空间中的Activity,对于AMS来讲,这个Activity就是客服端的 ...

  3. android系统启动框架、Activity界面显示过程详解

    一.Android系统框架 android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心 ...

  4. KJBitmap与KJHttp的深度用法

    摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/09/24/01这篇文章是对KJFrameForAndroid使用的一个深入学习 之前写过一些有关KJFrame的 ...

  5. Activity中UI框架基本概念

    Activity中UI框架基本概念 Activity 是应用程序的基本组成部分,提供了可视的界面,UI容器, 与用户进行交互: 具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的. 一 ...

  6. Activity 与 springMvc相整合

    准备环境: springMvc框架及Activity所需要的jar: 创建spring-activity.xml文件,里面内容: <?xml version="1.0" en ...

  7. activity 工作流学习(一)

    一.了解工作流 1.工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实 ...

  8. Android清单文件具体解释(六) ---- &lt;activity&gt;节点的属性

    1.android:allowTaskReparenting android:allowTaskReparenting是一个任务调整属性,它表明当这个任务又一次被送到前台时,该应用程序所定义的Acti ...

  9. Activity节点

    1.android:allowTaskReparenting Android:allowTaskReparenting是一个任务调整属性,它表明当这个任务重新被送到前台时,该应用程序所定义的Activ ...

随机推荐

  1. sql查询与修改数据库逻辑文件名,移动数据库存储路径

    USE mydb GO --1.查询当前数据库的逻辑文件名 ) ) AS 'File Name 2'; --或通过以下语句查询: --SELECT name FROM sys.database_fil ...

  2. MySQL学习笔记:delete from与truncate table的区别

    在Mysql数据库的使用过程中,删除表数据可以通过以下2种方式: delete from table_name truncate table table_name (1)delete from语句可以 ...

  3. Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor

    Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor */--> div ...

  4. vue 插槽slot

    本文是对官网内容的整理 https://cn.vuejs.org/v2/guide/components.html#编译作用域 在使用组件时,我们常常要像这样组合它们: <app> < ...

  5. I​n​n​o​ ​s​e​t​u​p​ ​常​用​修​改​技​巧

    Inno setup 常用修改技巧1 .如何让协议许可页面默认选中我同意按钮 [code]procedure InitializeWizard();beginWizardForm.LICENSEACC ...

  6. android拾遗——AlarmManager的使用

    AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent.简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Inten ...

  7. 通过okhttp3下载文件实现APP版本更新

    原文:https://blog.csdn.net/qq_34261214/article/details/77124729 概况 思路是这样的,首先在服务器上把已经签名打包的apk放上去,还有一份TX ...

  8. Hive(七)Hive分析窗口函数

    一数据准备 cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2015-04-12,7 cookie1,2015-04-13,3 cookie1,20 ...

  9. .NET异步多线程,Thread,ThreadPool,Task,Parallel,异常处理,线程取消

    今天记录一下异步多线程的进阶历史,以及简单的使用方法 主要还是以Task,Parallel为主,毕竟用的比较多的现在就是这些了,再往前去的,除非是老项目,不然真的应该是挺少了,大概有个概念,就当了解一 ...

  10. 8-11 Add All uva 10954

    有n n小于等于五千 个数的集合s  每次可以从s中删除两个数 然后把他们的和放回集合 直到剩下一个数 每次操作的开销等于删除两个数二之和  求最小总开销 思路:就是每次取最小的两个数即可 用优先级队 ...