集成glide,okgo ,ARouter,greendao,butterknife等框架的android demo

android demo 实例:集成glide,okgo ,ARouter,greendao,butterknife等框架

最新新启了一个项目,前期用的东西搭一个框架,随后直接开发

  • 页面直接TabLayout ViewPager 外加Fragement 实现
  • glide 实现网络图片加载 ,okgo 里面也有图片加载的方法
  • ARouter 实现路由的管理,及页面跳转的管理及操作
  • greendao 数据库管理主要对页面tag 显示的权限管理 ,动态管理按钮显示
  • butterknife 减少findid的操作

随后附上源码:为新的项目做前期开发模型。可以直接用的,随后附上源码下载链接:
下载链接
代码主要是框架的初始化及前期的页面逻辑操作
BaseActivity 这个为基类

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import com.alibaba.android.arouter.launcher.ARouter;

import butterknife.ButterKnife;


public abstract class BaseActivity extends AppCompatActivity {


    private static Toast toast;
    protected final String TAG = this.getClass().getSimpleName();
    protected Context context;

    protected abstract int intiLayout();

    public abstract void initView();

    public abstract void initData();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(intiLayout());
        context = getApplicationContext();
        ButterKnife.bind(this);
        ARouter.getInstance().inject(this);
        initView();
        initData();

    }

    /**
     * 显示长toast
     *
     * @param msg
     */
    public void toastLong(String msg) {
        if (null == toast) {

            toast = Toast.makeText(context, msg, Toast.LENGTH_LONG);
            toast.show();

        } else {
            toast = Toast.makeText(context, msg, Toast.LENGTH_LONG);
            toast.show();
        }
    }

    /**
     * 显示短toast
     *
     * @param msg
     */
    public void toastShort(String msg) {
        if (null == toast) {
            toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
            toast.show();
        } else {
            toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
            toast.show();
        }
    }


}

greenDAO操作比较繁琐 ,可以直接看代码 ,dao 直接rebuild project 直接看源码,其管理器代码为:

package kadacom.com.pad.ui.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.zgl.greentest.gen.AppGridDao;
import com.zgl.greentest.gen.DaoMaster;
import com.zgl.greentest.gen.DaoSession;

import org.greenrobot.greendao.query.QueryBuilder;

import java.util.List;

import kadacom.com.pad.ui.bean.AppGrid;

/**
 * Created by huangyin on 2018/8/7.
 */

public class DBManager {
    private static final String dbName = "kedacom_pad_db";
    private static DBManager mInstance;
    private DaoMaster.DevOpenHelper mOpenHelper;
    private Context mContext;

    public DBManager(Context context) {
        this.mContext = context;
        mOpenHelper = new DaoMaster.DevOpenHelper(mContext, dbName, null);
    }

    /**
     * 获取单例引用
     *
     * @param context
     * @return
     */
    public static DBManager getInstance(Context context) {
        if (mInstance == null) {
            synchronized (DBManager.class) {
                if (mInstance == null) {
                    mInstance = new DBManager(context);
                }
            }
        }
        return mInstance;
    }

    /**
     * 获取可读数据库
     *
     * @return
     */
    private SQLiteDatabase getReadableDatabase() {
        if (mOpenHelper == null) {
            mOpenHelper = new DaoMaster.DevOpenHelper(mContext, dbName, null);
        }
        SQLiteDatabase db = mOpenHelper.getReadableDatabase();
        return db;
    }

    /**
     * 获取可写数据库
     *
     * @return
     */
    private SQLiteDatabase getWritableDatabase() {
        if (mOpenHelper == null) {
            mOpenHelper = new DaoMaster.DevOpenHelper(mContext, dbName, null);
        }
        SQLiteDatabase db = mOpenHelper.getWritableDatabase();
        return db;
    }

    /**
     * 插入一条记录
     *
     * @param appGrid
     */
    public void insertUser(AppGrid appGrid) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.insert(appGrid);
    }

    /**
     * 插入用户集合
     *
     * @param appGrid
     */
    public void insertUserList(List<AppGrid> appGrid) {
        if (appGrid == null || appGrid.isEmpty()) {
            return;
        }
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.insertInTx(appGrid);
    }

    /**
     * 删除一条记录
     *
     * @param appGrid
     */
    public void deleteUser(AppGrid appGrid) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.delete(appGrid);
    }

    /**
     * 清空所有记录
     */
    public void clearAppGrid() {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.deleteAll();
    }

    /**
     * 批量删除
     *
     * @param list
     */
    public void deleteUsers(List<AppGrid> list) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.deleteInTx(list);
    }


    /**
     * 更新一条记录
     *
     * @param appGrid
     */
    public void updateUser(AppGrid appGrid) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        appGridDao.update(appGrid);
    }

    /**
     * 查询用户列表
     */
    public List<AppGrid> queryAppGridList() {
        DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        QueryBuilder<AppGrid> qb = appGridDao.queryBuilder();
        List<AppGrid> list = qb.list();
        return list;
    }

    /**
     * 根据条件查询用户列表
     */
    public List<AppGrid> queryUserList(int age) {
        DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        AppGridDao appGridDao = daoSession.getAppGridDao();
        QueryBuilder<AppGrid> qb = appGridDao.queryBuilder();
        qb.where(AppGridDao.Properties.Id.gt(age)).orderAsc(AppGridDao.Properties.Id);
        List<AppGrid> list = qb.list();
        return list;
    }


}

如果又不了解demo的请在下方留言

猜你喜欢

转载自blog.csdn.net/u012922981/article/details/81483878
今日推荐