GreenDao数据库

使用前首先是在项目的Project的build.gradle的dependencies{ }中加入一句话:

dependencies {

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'  
}

在当前项目app的build.gradle中引入依赖如下:

apply plugin: 'org.greenrobot.greendao'

android{
 greendao {
        schemaVersion 1//数据库版本号
        daoPackage 'com.example.zhangjingpractice.greendao'//设置DaoMaster、DaoSession、Dao包名
        targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
        //targetGenDirTest:设置生成单元测试目录
        //generateTests:设置自动生成单元测试用例
    }
}
 implementation 'org.greenrobot:greendao:3.2.2'
public class MainActivity extends AppCompatActivity {
@BindView(R.id.recycler_view)
RecyclerView recyclerView;
private RecyclerViewAdapter adapter;
private static final int lineCount=2;
public static final String DB_NAME="user.db";
private DaoSession mDaoSession;
private DataBeanDao dataBeanDao;
    private List<DataBean> data;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //注册
        EventBus.getDefault().register(this);
        ButterKnife.bind(this);
        //得到GridLayoutManager
        GridLayoutManager manager=new GridLayoutManager(this,lineCount);
        manager.setOrientation(OrientationHelper.VERTICAL);
        recyclerView.setLayoutManager(manager);

        //创建适配器
        adapter=new RecyclerViewAdapter(this);
        recyclerView.setAdapter(adapter);

        //删除
       adapter.setOnLongClickItemListener(new RecyclerViewAdapter.onLongClickItemListener() {
           @Override
           public void getPosition(int position) {
               adapter.delMethod(position);
           }
       });

       //点击商品列表项,跳转到详情页,要求动态显示商品详情数据
        adapter.setOnItemClickListener(new RecyclerViewAdapter.onItemClickListener() {
            @Override
            public void getInfo(int position) {
                Intent intent=new Intent(MainActivity.this, DetailActivity.class);
                intent.putExtra("pid",position);
                startActivity(intent);
            }
        });

        //初始化GreenDao
        initGreenDao();
        //判断有无网络
        if(!OkHttpUtils.hasNetwork(MainActivity.this)){
            Toast.makeText(MainActivity.this,"当前网络不可用", Toast.LENGTH_LONG).show();
            //查询
            List<DataBean> list = dataBeanDao.queryBuilder().list();
            adapter.setList(list);
        }else {
            //网络请求
            Map<String,String> params=new HashMap<>();
            params.put("keywords","笔记本");
            params.put("page",1+"");
            OkHttpUtils.getInstance().postRequest(Path.path_goods,params,GoodsBean.class);

        }

    }

   private void initGreenDao() {
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DB_NAME,null);
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(db);
        mDaoSession = daoMaster.newSession();
       dataBeanDao = mDaoSession.getDataBeanDao();

   }
   //添加
    private void add(){
       for (int i=0;i<data.size();i++){
           String title = data.get(i).getTitle();
           String images = data.get(i).getImages();
           double price = data.get(i).getPrice();
           int pid = data.get(i).getPid();
          DataBean dataBean=new DataBean((long) i,images,pid,price,title);
          dataBeanDao.insert(dataBean);
       }

    }



    @Subscribe(threadMode = ThreadMode.MAIN)
    public void getEventData(MessageBean messageBean){
      if(messageBean.getFlag()==1){
          GoodsBean bean= (GoodsBean) messageBean.getObject();
          data = bean.getData();
          adapter.setList(data);
          add();
      }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //注销注册
        EventBus.getDefault().unregister(this);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值