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的请在下方留言