Android ORM應用開發框架KJFrameForAndroid使用詳解

jopen 9年前發布 | 60K 次閱讀 ORM Android開發 移動開發

本文將為大家介紹一款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的高級用法。

本文鏈接:http://www.codeceo.com/article/android-orm-kjframeforandroid.html
本文作者:碼農網 – 小峰

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!