第一步在主工程下导入依赖

GreenDao制作的流程

第二步在main下的项目下导入依赖

GreenDao制作的流程
GreenDao制作的流程

第三步写增删改查
public class NewsBeanUntils {
    private static final NewsBeanUntils ourInstance = new NewsBeanUntils();
    private NewsBeanDao newsDao;

    public static NewsBeanUntils getInstance() {
        return ourInstance;
    }

    private NewsBeanUntils() {
    }
    //初始化
    public void init(Context context){
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "news");
        SQLiteDatabase db = helper.getWritableDatabase();
        DaoMaster mDaoMaster = new DaoMaster(db);
        newsDao = mDaoMaster.newSession().getNewsBeanDao();

    }
    //增
    public void insert(NewsBean newsBean){
        newsDao.insert(newsBean);
    }

    //查询全部
    public List<NewsBean> queryAll(){
        return newsDao.loadAll();
    }

    //查询单个
    public NewsBean query(String key){
        return newsDao.load(Long.parseLong(key));
    }

    //删除全部
    public void dellAll(){
        newsDao.deleteAll();
    }

    //删除单个
    public void dell(String key){
        newsDao.deleteByKey(Long.parseLong(key));
    }

    //修改
    public void udate(NewsBean newsBean){
        newsDao.update(newsBean);
    }
}

第四部写Bean,再写一个接口的Bean
@Entity
public class NewsBean {
    @Id(autoincrement = true)
    private Long id;
    private String title;
    private String image;
    private String desc;
    @Generated(hash = 1446835668)
    public NewsBean(Long id, String title, String image, String desc) {
        this.id = id;
        this.title = title;
        this.image = image;
        this.desc = desc;
    }
    @Generated(hash = 1662878226)
    public NewsBean() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getTitle() {
        return this.title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getImage() {
        return this.image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public String getDesc() {
        return this.desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }

}

第五部写App
public class App extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        NewsBeanUntils.getInstance().init(this);
        Fresco.initialize(this);
    }
}

主页面
public class MainActivity extends AppCompatActivity {
    private String url="https://code.aliyun.com/598254259/FristProject/raw/master/bw_test.txt";
    private RecyclerView recyclerView;
    private List<NewsBean> items=new ArrayList<>();
    private MyAdapter myAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView=(RecyclerView)findViewById(R.id.recyclerView);
        //布局管理器
        //(线性布局)
        //LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        //linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        //(瀑布流)
        StaggeredGridLayoutManager staggeredGridLayoutManager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(staggeredGridLayoutManager);
        myAdapter = new MyAdapter(this);
        recyclerView.setAdapter(myAdapter);

        if (NetworkUtils.isConnected(this)){
            //联网工具
            doHttp();
        }else {
            //无网络情况下
            items= NewsBeanUntils.getInstance().queryAll();
            myAdapter.setList(items);
        }

    }

    private void doHttp() {
        new DoHttp1().get(url).result(new HttpLister() {
            @Override
            public void success(String data) {
                items = new Gson().fromJson(data, NewsListBean.class).getItems();
                NewsBeanUntils.getInstance().dellAll();
                for(int i=0;i<items.size();i++){
                    NewsBean newsBean = items.get(i);
                    NewsBeanUntils.getInstance().insert(newsBean);
                }
                myAdapter.setList(items);

            }
        });
    }
}

相关文章:

  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2021-04-14
  • 2022-12-23
  • 2021-08-31
猜你喜欢
  • 2021-09-14
  • 2021-11-13
  • 2022-01-11
  • 2018-05-30
  • 2021-11-05
相关资源
相似解决方案