Android ORM应用开发框架KJFrameForAndroid使用详解
本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary。

KJFrameForAndroid简介
KJFrameForAndroid是一款基于Android的ORM和 IOC应用开发框架,封装了很多Android开发中常用的功能,包括Android中对Bitmap的操作类库。KJFrameForAndroid的设计非常精简,利用KJFrameForAndroid,我们可以用最少的代码完成很多丰富的Android功能应用,为Android开发者节省许多不必要的开发时间。
KJFrameForAndroid总共分为五大模块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
KJFrameForAndroid使用方法
KJFrameForAndroid的使用方法也是十分简单,首先复制KJLibrary工程中bin目录下的kjlibrary.jar文件至自己项目的libs文件夹中,然后在AndroidManifest.xml文件中添加以下权限规则:
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这样就可以在Android项目中使用KJFrameForAndroid的所有功能了。
下面是利用KJFrameForAndroid实现的一些例子:
UILibrary
下面的代码实现了一个Android Tab小工具
- public class TabExample extends KJActivity {
- @BindView(id = R.id.bottombar_content1, click = true)
- public RadioButton mRbtn1;
- @BindView(id = R.id.bottombar_content2, click = true)
- private RadioButton mRbtn2;
- @Override
- public void setRootView() {
- setContentView(R.layout.aty_tab_example);
- }
- @Override
- protected void initWidget() {
- super.initWidget();
- mRbtn1.setText("widget clicked listener");
- }
- @Override
- public void widgetClick(View v) {
- super.widgetClick(v);
- switch (v.getId()) {
- case R.id.bottombar_content1:
- ViewInject.toast("clicked mRbtn1");
- break;
- case R.id.bottombar_content2:
- ViewInject.toast("clicked mRbtn2");
- break;
- }
- }
- }
BitmapLibrary
下面的代码实现了对Bitmap图片的处理:
- KJBitmap kjb = KJBitmap.create();
- /**
- * url can be local sdcard path or internet url;
- * view can whichever View set image(for ImageView set src;for View set background).
- */
- // local sdcard image
- kjb.display(imageView, "file:///storage/sdcard0/1.jpg");
- // internet url
- kjb.display(textView, http://www.xxx.com/xxx.jpg);
- //自定义图片显示大小
- kjb.display(view, http://www.xxx.com/xxx.jpg, 80, 80); //width=80,height=80
HttpLibrary
下面的代码实现了远程获取JSON的功能:
- // get
- kjh.get("http://www.oschina.net/", new HttpCallBack();//like post, so just one example
- // post
- KJHttp kjh = new KJHttp();
- HttpParams params = new HttpParams();
- params.put("id", "1");
- params.put("name", "kymjs");
- kjh.post("http://192.168.1.149/post.php", params, new HttpCallBack() {
- @Override
- public void onPreStart() {
- super.onPreStart();
- KJLoger.debug("before start");
- }
- @Override
- public void onSuccess(String t) {
- super.onSuccess(t);
- ViewInject.longToast("request success");
- KJLoger.debug("log:" + t.toString());
- }
- @Override
- public void onFailure(Throwable t, int errorNo, String strMsg) {
- super.onFailure(t, errorNo, strMsg);
- KJLoger.debug("exception:" + strMsg);
- }
- @Override
- public void onFinish() {
- super.onFinish();
- KJLoger.debug("request finish. Regardless of success or failure.");
- }
- });
DBLibrary
下面的代码实现了对数据库的操作:
- // data file
- KJDB db = KJDB.create(this);
- User ugc = new User(); //warn: The ugc must have id field or @ID annotate
- ugc.setEmail("kymjs123@gmail.com");
- ugc.setName("kymjs");
- db.save(ugc);
- //one - many
- public class Parent{ //JavaBean
- private int id;
- @OneToMany(manyColumn = "parentId")
- private OneToManyLazyLoader<Parent ,Child> children;
- /*....*/
- }
- public class Child{ //JavaBean
- private int id;
- private String text;
- @ManyToOne(column = "parentId")
- private Parent parent;
- /*....*/
- }
- List<Parent> all = db.findAll(Parent.class);
- for( Parent item : all){
- if(item.getChildren ().getList().size()>0)
- Toast.makeText(this,item.getText() + item.getChildren().getList().get(0).getText(),Toast.LENGTH_LONG).show();
- }
当然这些只是一些最简单的例子,如果你熟悉Android开发,也可以去KJFrameForAndroid的官方网站上学习更多关于KJFrameForAndroid的高级用法。
Android ORM应用开发框架KJFrameForAndroid使用详解的更多相关文章
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- Android EventBus 3.0 实例使用详解
EventBus的使用和原理在网上有很多的博客了,其中泓洋大哥和启舰写的非常非常棒,我也是跟着他们的博客学会的EventBus,因为是第一次接触并使用EventBus,所以我写的更多是如何使用,源码解 ...
- Android开发:文本控件详解——TextView(一)基本属性
一.简单实例: 新建的Android项目初始自带的Hello World!其实就是一个TextView. 在activity_main.xml中可以新建TextView,从左侧组件里拖拽到右侧预览界面 ...
- [置顶]
xamarin android toolbar(踩坑完全入门详解)
网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...
- Android 应用程序之间内容分享详解(二)
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...
- Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)
[Android布局学习系列] 1.Android 布局学习之——Layout(布局)详解一 2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数) 3.And ...
- Android 多线程之IntentService 完全详解
关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...
- Android 多线程之HandlerThread 完全详解
关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...
- Android 6.0 RK3288 ROM编译详解+命令详解【转】
本文转载自:http://blog.csdn.net/MLQ8087/article/details/58607692 Android 6.0 RK3288 ROM编译详解+命令详解 原创 2017年 ...
随机推荐
- acvity和fragment通过广播联系
今天我遇到一个问题,就是在activity中需要动态改变fragment中的控件,以前看到过可以在activity中得到fragment实例,然后修改控件: 今天实验了一个新的办法,通过新的办法,就是 ...
- C#字节数组转换成字符串
C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...
- JAVA 冒泡算法
每种语言都有冒泡JAVA实现如下: public static void main(String args[]){ System.out.println("Start"); int ...
- Tomcat安装配置
Tomcat安装配置 很久没有通过博客对学习所得进行记录了. 现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教. 1.首先是Tomcat的获取和安装. 获取 ...
- jQuery.hasClass() 函数
hasClass() 函数 判断当前选择元素是否有指定的类名 语法 $(selector).hasclass(classname) 返回值 返回值为布尔型(true/false) 如果当前选择对象包含 ...
- shell中三种引号的用法
1.单引号 所见即所得 例如:var=123 var2='${var}123' echo var2 var2结果为${var}123 2.双引号 输出引号中的内容,若存在命令.变量等,会先执行命令解析 ...
- font-weight -- 定义字体的粗细
font-weight -- 定义字体的粗细 取值: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 70 ...
- SIGPIPE了解
当未连接成功相机网络,在socket请求中 if (_session->prepareSession("192.168.1.1") != ICH_SUCCEED) // ...
- js实现div层缓慢收缩与展开的方法
引脚本之家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/T ...
- Mysql 启动错误:the server quit without updating pid
接到任务看看mysql为啥起不来,就上服务器上看了看,确实起不来,至于之前发生了啥也不知道. 服务器Ubuntu,mysql-5.6 1.先试下mysql登陆 mysql -uroot -p 发现报错 ...