GreenDao+Retrofit+EventBus

Retrofit+EventBus+GreenDao+MVP简单小总结 这篇博客主要就是Retrofit,GreenDao,EventBus, ButterKnife,Fresco和MVP的一个知识的小总结 阅读详情

导依赖

compile 'org.greenrobot:eventbus:3.0.0'
compile'org.greenrobot:greendao:3.0.1'
compile'org.greenrobot:greendao-generator:3.0.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

list展示数据

httpconfig类

public class HttpConfig {
   // https://www.zhaoapi.cn/product/getProducts?pscid=1
    public static String base_url="https://www.zhaoapi.cn/";
}
@Entity实体类
public class GoodsData {
   @Id(autoincrement = true)
    private Long id;
   private String json;
   public String getJson() {
      return this.json;
   }
   public void setJson(String json) {
      this.json = json;
   }
   public Long getId() {
      return this.id;
   }
   public void setId(Long id) {
      this.id = id;
   }
   @Generated(hash = 1466404151)
   public GoodsData(Long id, String json) {
      this.id = id;
      this.json = json;
   }
   @Generated(hash = 1868386571)
   public GoodsData() {
   }

   @Override
   public String toString() {
      return "GoodsData{" +
              "id=" + id +
              ", json='" + json + '\'' +
              '}';
   }
}
服务类
public interface MyServcie {
    @GET("product/getProducts")
    Call<GoodsBean> getGoodlist(@Query("pscid") int pscid);
初始化GreenDao

public class MyApp extends Application {
    private static MyApp myApp;
    private DaoSession daoSession;

    @Override
    public void onCreate() {
        super.onCreate();
        myApp=this;
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "demo.db", null);
        SQLiteDatabase database = helper.getReadableDatabase();
        DaoMaster daoMaster = new DaoMaster(database);
        daoSession = daoMaster.newSession();
    }
    public static MyApp instance(){
        return myApp;
    }
    public DaoSession getDaoSession(){
        return daoSession;

}

在MainActivity里判断是否有网,有网请求数据存入数据库没网从数据库获取数据展示

public class MainActivity extends AppCompatActivity {

    private ListView listview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview = findViewById(R.id.listview);
        boolean b = hasNet();
        //判断有否网络
        if (b){
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(HttpConfig.base_url)
                    .addConverterFactory(GsonConverterFactory.create(new Gson()))
                    .build();
            MyServcie myServcie = retrofit.create(MyServcie.class);
            myServcie.getGoodlist(1).enqueue(new Callback<GoodsBean>() {
                @Override
                public void onResponse(Call<GoodsBean> call, Response<GoodsBean> response) {
                    GoodsBean body = response.body();
                    List<GoodsBean.DataBean> list = body.getData();
                    //展示
                    MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);
                    listview.setAdapter(myAdapter);
                    //存入数据库
                    MyApp myApp = MyApp.instance();
                    GoodsDataDao dataDao = myApp.getDaoSession().getGoodsDataDao();
                    GoodsData goodsData=new GoodsData();
                    String json= new Gson().toJson(body);
                    goodsData.setJson(json);
                    dataDao.insert(goodsData);
                }

                @Override
                public void onFailure(Call<GoodsBean> call, Throwable t) {

                }
            });
        }else {
            MyApp myApp = MyApp.instance();
            GoodsDataDao dataDao = myApp.getDaoSession().getGoodsDataDao();
            List<GoodsData> list = dataDao.queryBuilder().build().list();
            String json = list.get(0).getJson();
            GoodsBean goodsBean = new Gson().fromJson(json, GoodsBean.class);
            List<GoodsBean.DataBean> list1 = goodsBean.getData();
            MyAdapter myAdapter=new MyAdapter(MainActivity.this,list1);
            listview.setAdapter(myAdapter);
        }
    }

    //判断有没有网
    public boolean hasNet() {
        // 获得网络状态管理器
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

        if (connectivityManager == null) {
            return false;
        } else {
            // 建立网络数组
            NetworkInfo[] net_info = connectivityManager.getAllNetworkInfo();

            if (net_info != null) {
                for (int i = 0; i < net_info.length; i++) {
                    // 判断获得的网络状态是否是处于连接状态
                    if (net_info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
}
适配器就不写了
Retrofit+GreenDao请求数据保存数据库 //recyclerview适配器 public class MyAdapter extends RecyclerView.Adapter { private Context context; private List list; public MyAdapter(Context context, List list) { this.context 阅读详情

相关推荐

greendao数据库操作+okhttp网络数据获取

数据库操作+网络数据获取,使用两者相结合,自己进行封装,添加到app中,希望能多多支持-修改后积分变少,下载只需要5分就可以了噢

【Android开发】greenrobot三大开源利器详解(一)——EventBus

一、greenrobot介绍greenrobot相关信息较少,可以确信是一个开源组织。官网:http://greenrobot.org/。 greenrobot主要开发并维护了3个Android开源库,即greenDAO、EventBus、和Essentials。三个开源库都可以在GitHub上进行下载。本节讲解其中最著名的EventBus。二、EventBus概述EventBus的官方解释是:“

BrilliantEagle的专栏 1万+

MVP-Rxjava-Retrofit-GreenDao_DEMO

一个MVP+Rxjava+Retrofit+GreenDao的DEMO程序完整源代码,可导入Android studio运行,理解开源库的综合使用,一个可用的示例项目必不可少哦。

android高级

一、OkHttp 导入ok依赖: implementation ‘com.squareup.okhttp3:okhttp:3.12.0’ get异步: ①创建OKhttpclient对象 new OkHttpClient.Builder().build(); ②构建请求对象 new Request.Builder().get().url(url).build(); ③获取call对象 ...

weixin_45712450的博客 732

RDMA网络通信技术、NCCL集合通讯(GPU)

NCCL 是 NVIDIA 专为 GPU 设计的高性能集合通信库,用于优化多 GPU、多节点间的集体操作(如 AllReduce、Broadcast、AllGather 等),是深度学习分布式训练的核心组件。RDMA 允许计算机直接访问远程内存,无需 CPU 干预,大幅降低了网络通信的延迟和 CPU 开销。常见的 RDMA 实现包括。是两项关键技术,用于优化节点间数据传输效率和大规模并行计算性能。在高性能计算(HPC)、人工智能训练和数据密集型场景中,

weixin_42795092的博客 2422

Linux yum源配置以及yum命令讲解

前面为大家介绍了RPM二进制包安装软件,RPM包安装的最大的缺点也提到过,就是依赖性太强,一旦遇到依赖问题,则需要我们手动解决包之间具有依赖性的问题,今天为大家介绍一种可自动解决包之间依赖关系的安装方式:yum。 yum 全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上我们通常可以通过各种软件管家实现软件的一键安装、升级和卸载,yum就是Linux 系统中的一键安装工具。yum 解决依赖关系的基本逻辑是:yu

九派Linux的博客 2283

数据展示+传值+存数据库

用到的依赖 大build classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' implementation 'com.facebook.fresco:fresco:1.2.0' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.squareup...

Android_ZMY的博客 622

手把手教你用STM32F030实现功率MOS双脉冲测试(附完整电路图)

本文详细介绍了如何使用STM32F030微控制器搭建功率MOSFET双脉冲测试平台。通过分析双脉冲测试原理,提供了完整的硬件电路设计、驱动电路选型、软件时序生成方法,并指导如何利用示波器捕获和分析开关波形,从而评估功率器件的动态特性与开关损耗。

juice的博客 714

greendao eventbus Retrofit lhh

##RetrofitUtil public class RetrofitUtil { private static RetrofitUtil instance; private final Retrofit retrofit; private RetrofitUtil() { HttpLoggingInterceptor httpLoggingInterc...

weixin_43920581的博客 184

基于注意力机制的行人重识别(Reld)模型论文解读----Relation-Aware Global Attention for Person Re-identification

任务概述:在多摄像头的复杂场景中,快速定位查找指定目标的所有结果。

qq_52053775的博客 1895

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2200

android_网络判断,Greendao,retrofit,eventbus结合展示数据

第一:导依赖 顶部: apply plugin: 'org.greenrobot.greendao' dependencies: compile 'org.greenrobot:greendao:3.2.2' // compile 'com.github.bumptech.glide:glide:4.3.1' // annotationProcessor 'com.gi

Rbh73692的博客 491

YOLOv11的扩散模型去噪预处理-(在推理前对低质量图像进行增强)

摘要: 扩散模型与YOLOv11的结合有效提升了复杂场景下的目标检测性能。针对低质量图像(如噪声、低光照)导致YOLOv11特征提取退化的问题,研究提出了一种基于条件扩散模型的预处理方法。通过语义引导的渐进式去噪,在保留关键检测特征的同时,显著改善了图像质量。技术核心包括:1)利用YOLOv11浅层特征作为条件输入;2)交叉注意力机制实现任务感知去噪;3)知识蒸馏与潜空间扩散加速推理。实验表明,该方法使mAP50提升19%,在15步内达到传统百步去噪效果,平衡了精度与实时性需求,为鲁棒性目标检测提供了新思路

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 878

Android——Fresco、EventBus、GreenDao、Butterknife、Retrofit综合使用

一、案例效果图        二、技能描述   通过Retrofit进行网络请求数据,要求后两个参数(下方接口地址中的10和1)通过注解方式传进去, 使用RecyclerView进行列表展示,请求到数据之后,使用GreenDao进行数据缓存,当进入页面时, 先从数据库中取数据,进行展示,再进行网络请求,有数据就更新,没有网络情况下只显示数据库中数据。 进入页面后判断网络状态,通过Ev...

xy8199的博客 670

PCL 平面点云的凹多边形边界提取【2025最新版】

平面点云的凹多边形边界提取及边界轮廓线绘制。博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 7183

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Retrofit xbanner greendao eventbus adapter XRecyclerView

##RetrofitUtil public class RetrofitUtil { private static RetrofitUtil instance; private final Retrofit retrofit; private RetrofitUtil() { HttpLoggingInterceptor httpLoggingInterc...

weixin_44022413的博客 204

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

fragment联动与RecycleView请求数据(包含retrofit,Fresco,EventBus与GreenDao结合MVP)

项目需要的依赖以及一些权限配置; 权限:  依赖:compile 'com.jakewharton:butterknife:7.0.0' compile 'org.greenrobot:eventbus:3.1.1' compile 'com.facebook.fresco:fresco:0.14.1' compile 'com.android.support:

guoleisb10的博客 597

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

GreenDao,注解,RecyclerView,EventBus,Retrofit展示列表

添加依赖 //BottomTabBar compile 'com.hjm:BottomTabBar:1.1.1' //黄油刀 compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' //recyclerview compile

qq_40087072的博客 369

MVP+Retrofit+fresco+greendao+eventbus

compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.android.support:recyclerview-v7:26.1.0' compile 'com.jakewharton:butterknife:8.8.1'

qq_39969337的博客 253

Fresco,EventBus,GreenDao,Butterknife,Retrofit 的结合使用

在project的bulid.gradle包下配置: mavenCentral() // add repository greenDao classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plug

SXS120730的博客 609

Fresco图片加载+Eventbus跳转传值+Retrofit请求数据+GreenDao操作数据+Mvp分层+RecyclerView展示数据+ButtonKnife生成控件

效果图:        效果图描述: 首页RecycierView 点击条目,使用 Eventbus传值给第二个activity,展示数据 Retrofit的get方式展示recyclerview,fresco加载图片,添加到数据库greendao, 点击条目发送Eventbus黏性事件给SecondActivity,展示字段数据。 涉及到了

IT666DHW的博客 736

RxJava与EventBus双剑合璧:NBAPlus异步数据处理与事件通信最佳实践

NBAPlus是一款专注于NBA新闻和赛事的简洁应用,它巧妙运用RxJava进行异步数据处理,并结合EventBus实现高效的事件通信,为用户带来流畅的使用体验。通过这两个强大工具的协同工作,NBAPlus成功构建了一个响应迅速、架构清晰的移动应用。 ## 为什么选择RxJava与EventBus组合? 在移动应用开发中,异步操作和组件间通信是两大核心挑战。RxJava提供了优雅的异步数据流处

gitblog_00258的博客 382

GreenDao--retrofit--fresco--eventbus--recyclerview

先对GreenDao进行配置 最外层也就是你的工程的build.gradle加上这行代码 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin 然后就是你的项目就的依赖最上方加 apply plugin: 'org.greenrobot.greendao' 然后在buildTypes方法体下

BoBrother的博客 544

android数据库应用编程,Android 快速开发系列之数据库篇(greenDao)

前言:在现在不懂就google的时代开发本身已经不是什么难事了,能够开速写出优雅,灵活,易扩展,高性能的代码是我们不断学习和需要努力的目标。随着Android发展许多新的技术和框架需要我们去学习和深入。下面引用一张图片来表达我想要实现的Android应用架构图。MVP架构图引用.png对于MVP架构的优点大家可以自行搜索,本文不在这里讨论MVP和传统MVC模式的优劣。Model:数据层 ,数据来源...

weixin_31869917的博客 166
上一篇: GreenDao的使用
下一篇: Rxjava+Retrofit+GreenDao+RecyclerView实现数据存储数据库
wanglinuo521
博客等级 码龄9年 11粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值