首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓天气预报app(三)——城市管理、数据库操作

所以接下来就是进行安卓SQLite数据库的一些操作,把当前位置信息保存到数据库中(城市名,城市温度,更新时间) 待实现效果: 数据库成功插入当前位置数据信息(之前测试插入过几条的测试对照用数据):...位置商丘的信息成功插入,插入之后,后续要进行的操作就是实时更新数据库 涉及内容 SQLite数据库操作,创建数据库,新建表,增删查改操作 适配器adapter添加点击事件 页面传值跳转项目结构...所以适配器中添加一个点击事件,首先在适配器中添加接口 public interface OnItemClickListener { /** * 当RecyclerView...} } 自此一部分功能就实现了,跳转城市管理页面,展示城市,指定城市展示天气信息, 数据库操作实现了: 拿到数据库所有城市信息、 插入一条数据、 根据城市名称更新数据、 删除一条数据待完成,...,自行拓展,只要工具类删除方法写对,无非就是添加个事件调用删除方法 更精细化的搜索城市,主动根据搜索到的城市添加城市到数据库,后篇文章会逐渐完善,此篇文章主要是数据库的一些操作和适配器添加点击事件,订阅此栏可同步获取项目搭建过程

1.5K30

RecyclerView必知必会

Demo6: RecyclerView实现万能适配器,瀑布流布局,嵌套滑动机制。...容易实现添加item、删除item的动画效果。 容易实现拖拽、侧滑删除等功能。 RecyclerView是一个插件式的实现,对各个功能进行解耦,从而扩展性比较好。...layoutChunk()的核心实现如下: 其中next()调用了getViewForPosition(currentPosition),该方法是从RecyclerView的回收机制实现类Recycler...具体实现如下: 拖拽、侧滑删除 Android提供了ItemTouchHelper类,使得RecyclerView能够轻易地实现滑动和拖拽,此处我们要实现上下拖拽和侧滑删除。...此方法中可以做一些状态变化时的处理,比如拖拽的时候修改背景色。 clearView(): 用户交互结束时回调。此方法可以做一些状态的清空,比如拖拽结束后还原背景色。

4.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RecyclerView 必知必会

    容易实现添加item、删除item的动画效果。 容易实现拖拽、侧滑删除等功能。 RecyclerView是一个插件式的实现,对各个功能进行解耦,从而扩展性比较好。...其中next()调用了getViewForPosition(currentPosition),该方法是从RecyclerView的回收机制实现类Recycler中获取合适的View,在后文的回收机制中会介绍该方法的具体实现...从DefaultItemAnimator类的实现来看,发现自定义Item Animator好麻烦,需要继承SimpleItemAnimator类,然后实现一堆方法。...拖拽、侧滑删除 Android提供了ItemTouchHelper类,使得RecyclerView能够轻易地实现滑动和拖拽,此处我们要实现上下拖拽和侧滑删除。...此方法中可以做一些状态变化时的处理,比如拖拽的时候修改背景色。 clearView(): 用户交互结束时回调。此方法可以做一些状态的清空,比如拖拽结束后还原背景色。

    4.2K90

    RecyclerView 必知必会

    容易实现添加item、删除item的动画效果。 容易实现拖拽、侧滑删除等功能。 RecyclerView是一个插件式的实现,对各个功能进行解耦,从而扩展性比较好。...其中next()调用了getViewForPosition(currentPosition),该方法是从RecyclerView的回收机制实现类Recycler中获取合适的View,在后文的回收机制中会介绍该方法的具体实现...从DefaultItemAnimator类的实现来看,发现自定义Item Animator好麻烦,需要继承SimpleItemAnimator类,然后实现一堆方法。...拖拽、侧滑删除 Android提供了ItemTouchHelper类,使得RecyclerView能够轻易地实现滑动和拖拽,此处我们要实现上下拖拽和侧滑删除。...此方法中可以做一些状态变化时的处理,比如拖拽的时候修改背景色。 clearView(): 用户交互结束时回调。此方法可以做一些状态的清空,比如拖拽结束后还原背景色。

    2.6K70

    Android Room数据库使用

    Room数据库使用 前言 正文 一、添加依赖 二、注解使用 三、表操作 1. 修改布局 2. 列表适配器 3. 页面初始化 4....本质上就是对Android原生的SQLite的封装,只不过使用起来比原生简单,就好像一些开源库GreenDao、LitePal、OrmLite等,都是对Android SQLite的再次封装。...,主要是注解的说明,这个@Entity就是表示数据库中的表,User类对应就是User表,@PrimaryKey表示主键,这里是id,autoGenerate = true 是自增,@NonNull表示不为空...version = 1表示数据库的版本,可以做数据库的升级操作。 注意这是一个抽象类,在编译时Room会帮助构建实现类。 现在运行一下,手机或者模拟器都可以。然后什么都不用去做。...增删改查 当前数据表中还没有任何数据,因此需要先增加数据。然后查询,删除后查询,修改后查询,这样增删改查就都涉及到了。

    1.3K30

    Android 天气APP(十八)常用城市

    因为一旦数据量很多的情况下我们不会用SQLite,而是通过服务器的数据库返回数据,而数据量少的时候用缓存就可以解决问题,所以这也是SQLite尴尬的地方,这是我个人看法,不过这个SQLite还是很重要的...中添加依赖 //Android SQLite操作框架 api 'org.litepal.guolindev:core:3.1.1' //列表item侧滑删除 api 'com.github.mcxtzhang...最后在WeatherApplication中的onCreate方法中初始化,初始化的时候,你的数据库就创建好了,数据库名称是GoodWeather,表名是ResidentCity ?...id initCityList(); //删除数据后判断一下显示和隐藏的控件...residentCity.setCnty(mList.get(position).getCnty());//该地区/城市所属国家名称 residentCity.save();//保存数据到数据库中

    71010

    Android Room数据库使用

    本质上就是对Android原生的SQLite的封装,只不过使用起来比原生简单,就好像一些开源库GreenDao、LitePal、OrmLite等,都是对Android SQLite的再次封装。...,主要是注解的说明,这个@Entity就是表示数据库中的表,User类对应就是User表,@PrimaryKey表示主键,这里是id,autoGenerate = true 是自增,@NonNull表示不为空...version = 1表示数据库的版本,可以做数据库的升级操作。 注意这是一个抽象类,在编译时Room会帮助构建实现类。 现在运行一下,手机或者模拟器都可以。然后什么都不用去做。...作为列表数据的适配器。...增删改查 当前数据表中还没有任何数据,因此需要先增加数据。然后查询,删除后查询,修改后查询,这样增删改查就都涉及到了。

    72220

    RecycleView从0到0.1 | 技术创作特训营第一期

    )类,该类继承于RecyclerView.Adapter,其中VH是我们adapter类中创建的一个继承于RecyclerView.ViewHolder的静态内部类。...可以看到该适配器类主要有3个方法和1个自定义ViewHolder组成:onCreateViewHolder: 创建ViewHolder并返回,后续item布局里控件都是从ViewHolder中取出。...MyHolder : 这是RecyclerView.ViewHolder的实现类,用于初始化item布局中的子控件。需要注意的是,在这个类的构造方法中需要传递item布局的View给父类 。...我们可以在RecyclerView的Adapter中自定义一个接口,并创建一个供其他类设置监听的方法。...当我们定义好接口后,我们在onBindViewHolder()方法中为holder.itemView(itemView是列表中的每一个item项)设置了点击事件监听,然后在onClick()中判断是否有用户传递过

    44411

    Mybatis 手撸专栏|第21章:Mybatis 框架源码10种设计模式分析

    在 Mybatis 框架中,Executor 类就是使用观察者模式实现的。它负责执行数据库操作并在执行完成后通知注册的监听器。...void addListener(ExecutorListener listener) { listeners.add(listener); }}通过使用观察者模式,Executor 类在执行完数据库操作后...在 Android 开发中,适配器模式非常常见,特别是在 RecyclerView 和 ListView 中。适配器通常将数据和视图进行适配,以便在列表中显示。...MyAdapter 是一个适配器,负责将数据源 data 中的数据适配到 RecyclerView 的列表项视图中。...通过适配器模式,我们可以轻松地在 RecyclerView 中显示我们的数据。9. 代理模式(Proxy)代理模式是一种结构型设计模式,它为其他对象提供一个代理,以控制对这个对象的访问。

    47320

    JetPack--Room数据库

    JetPack提供了Room数据库,和GreenDAO等开源库一样,在SQLite做了封装 Room主要使用三个注解: 1.Entity:实体类,对应一张表 2.Dao:包含操作表的一些列方法 3.Database...需要满足:定义的类是一个继承RoomDatabase的抽象类,注解中定义包含实体类列表,包含一个没有参数的抽象方法并返回Dao对象 一、Room上手 首先添加依赖: implementation...; } 定义抽象类,继承于RoomDatabase,并使用@Database注解,注解中指定表的实体类、数据库版本、是否输出日志 使用单例模式时,构造方法不能私有化,因为Room内部会调用构造方法...效果: 不过每次我们做了操作后,还需要手动查询下,有没有可以自动刷新数据的方法呢?...中修改表结构比较麻烦,如果想要将sex字段从INTEGER改为TEXT,最好的方式是采用销毁与重建策略,将数据复制到一个临时表,在删除原表,再将临时表重命名成原表名,可以参考schema文件 static

    1.5K20

    Android开发框架Collection

    4.collectionLibary中的Config配置类增加json字段过滤、网络请求超时设置、网络请求头设置(全局请求头)。 5.增加自动换行布局。 6.Realm增加按数据字段查询和删除接口。...v1.2.6 1.RxJava的依赖更新。 2.修正RecyclerView头部布局不能铺满问题。 3.PopupWindow的使用。 4.DisplayUtils工具类对状态栏的修改。...数据库名称 SQLITE_DB_VERSION 数据库版本名 在项目中需要根据项目需要进行配置,在Application中设置 private void config(){ //基本配置 Config.DEBUG...deleteTable 删除数据表 update 更新某个bean类的 queryOfPageByWhere 根据条件分页查询,实体类必须包含PrimaryKey queryOfPage 分页查询,实体类必须包含...Config.SQLITE_DB_VERSION,往上递增 在Application中对版本号进行监听,并对数据表进行更新 SQLiteVersionMigrate sqLiteVersionMigrate

    10110

    【RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )

    : 当前 RecyclerView 列表中被移出的 item 元素索引 , 也就是说之前的数据集合中被移出的数据索引 ; 注意 : 调用该方法后 , 只会刷新与该位置相关的 item 元素 , 不会刷新其它元素...) 方法 , 传入的参数是被删除的元素的首个索引 , 以及插入元素的个数 ; 该方法的作用是通知任何被注册的观察者 , 从 positionStart 位置开始的的 itemCount 个 item 元素对应的数据被从数据集中删除...; ( 旧的数据集中的索引位置 ) int itemCount 参数 : 数据集中被删除元素个数 ; 注意 : 调用该方法后 , 只会刷新与该位置相关的 item 元素 , 不会刷新其它元素 , 即使数据改变了...中的其它 item 元素不变 ; 代码示例 : 删除前 3 个数据 , 通知适配器 , 原数据集中的从第 0 个元素开始的 3 个数据元素被删除了 ; //...从布局中获取 RecyclerView RecyclerView recycler_view = findViewById(R.id.recycler_view); /

    3.6K00

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    版本升级迁移   在AppDatabase中增加如下代码,用于数据库版本的升级迁移,这里我是新增了一个迁移对象,构建迁移对象的版本,从1到2,然后执行一段SQL语句,该语句用于创建一个新的表。...热门壁纸数据处理   下面进入MainRepository中去对热门壁纸的数据进行处理,之前是只有从数据库中获取数据,现在可以通过本地数据库获取。...下面在MainRepository中增加一个从本地数据库中读取数据的方法,代码如下: /** * 从本地数据库获取热门壁纸 */ private void getLocalDBForWallPaper...wallPaperResponse.setRes(resBean); wallPaper.postValue(wallPaperResponse); }); } 这里就是从本地数据库中查询...wallpaper表中的所有数据,然后赋值给实体,再通过postValue去发送数据,页面收到通知之后就会更新适配器。

    2.1K20

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    版本升级迁移   在AppDatabase中增加如下代码,用于数据库版本的升级迁移,这里我是新增了一个迁移对象,构建迁移对象的版本,从1到2,然后执行一段SQL语句,该语句用于创建一个新的表。...热门壁纸数据处理   下面进入MainRepository中去对热门壁纸的数据进行处理,之前是只有从数据库中获取数据,现在可以通过本地数据库获取。...下面在MainRepository中增加一个从本地数据库中读取数据的方法,代码如下: /** * 从本地数据库获取热门壁纸 */ private void getLocalDBForWallPaper...wallPaperResponse.setRes(resBean); wallPaper.postValue(wallPaperResponse); }); } 这里就是从本地数据库中查询...wallpaper表中的所有数据,然后赋值给实体,再通过postValue去发送数据,页面收到通知之后就会更新适配器。

    2.8K10

    【RecyclerView】 十三、RecyclerView 数据更新 ( 移动数据 | 数据改变 )

    , int toPosition) 函数原型 : 该函数定义在 RecyclerView 的内部类 Adapter 中 ; public class RecyclerView extends ViewGroup...调用该方法刷新数据 , 比调用其它方法更有效 , 但是没有动画效果 ; 数据改变事件类型 : 有两种不同的类型 , item 元素改变 和 结构性改变 ; ① item 元素改变 : 指的是单个的 item 的数据更新...(int position) 函数原型 : 该函数定义在 RecyclerView 的内部类 Adapter 中 ; public class RecyclerView extends ViewGroup...; * * 数据改变事件 , 有两种不同的类型 , item 元素改变 和 结构性改变 ; * item 元素改变时单个的 item 的数据更新...从布局中获取 RecyclerView RecyclerView recycler_view = findViewById(R.id.recycler_view); /

    3.4K00

    深入浅出 RecyclerView

    ,从名字我们就能看出来了,分别是:线性显示、网格显示、瀑布流显示。...不过 RecyclerView 的 ViewHolder 创建稍微有些限制,类名就是上面继承的时候泛型中声明的类名(或者应该说,上面泛型中的类名需要是这个holder的类名);并且 ViewHolder...使用 demo 可以查看:Github 【RecyclerView简单使用】 添加删除 item 的动画 同 ListView 每次修改了数据源后,都要调用 notifyDataSetChanged()...在添加或删除了数据后,RecyclerView 还提供了一个默认的动画效果,来改变显示。...RecyclerView 的内部维护了一个二级缓存,滑出界面的 ViewHolder 会暂时放到 cache 结构中,而从 cache 结构中移除的 ViewHolder,则会放到一个叫做RecycledViewPool

    1.7K60
    领券