当前位置: 首页 > news >正文

基于LiveData和ViewModel的路线管理实现(带PopupWindow删除功能)

包含RecyclerView绑定、PopupWindow删除功能和SharedPreferences持久化存储。

1. RouteInfo类(实现Parcelable接口)

java

复制

下载

import android.os.Parcel;
import android.os.Parcelable;public class RouteInfo implements Parcelable {private Integer routeID;private Integer routeState;private String name;private String mapInfo; // 简化存储private String routeTraceFilePath;private Double routeLength;private String routeBeginPhoto;private String routeEndPhoto;private Integer routeTimeCost;private int routeThumbnailImgPath;// 构造方法public RouteInfo() {}protected RouteInfo(Parcel in) {routeID = in.readInt();routeState = in.readInt();name = in.readString();mapInfo = in.readString();routeTraceFilePath = in.readString();routeLength = in.readDouble();routeBeginPhoto = in.readString();routeEndPhoto = in.readString();routeTimeCost = in.readInt();routeThumbnailImgPath = in.readInt();}public static final Creator<RouteInfo> CREATOR = new Creator<RouteInfo>() {@Overridepublic RouteInfo createFromParcel(Parcel in) {return new RouteInfo(in);}@Overridepublic RouteInfo[] newArray(int size) {return new RouteInfo[size];}};// Getter和Setter方法public Integer getRouteID() { return routeID; }public void setRouteID(Integer routeID) { this.routeID = routeID; }// 其他getter/setter省略...@Overridepublic int describeContents() { return 0; }@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeInt(routeID);dest.writeInt(routeState);dest.writeString(name);dest.writeString(mapInfo);dest.writeString(routeTraceFilePath);dest.writeDouble(routeLength);dest.writeString(routeBeginPhoto);dest.writeString(routeEndPhoto);dest.writeInt(routeTimeCost);dest.writeInt(routeThumbnailImgPath);}
}

2. ViewModel类(管理路线数据)

java

复制

下载

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import java.util.ArrayList;
import java.util.List;public class RouteViewModel extends ViewModel {private MutableLiveData<
http://www.xdnf.cn/news/579511.html

相关文章:

  • 人工智能价值:技术革命下的职业新坐标
  • 【java】Java注解
  • 通信协议详解(分层技术解析)
  • 4-码蹄集600题基础python篇
  • 16、Python运算符全解析:位运算实战、字符串拼接与列表合并技巧
  • 如何在电脑上登录多个抖音账号?多开不同IP技巧分解
  • 【Redis】AOF日志
  • 8天Python从入门到精通【itheima】-26~28
  • CondaEnvException: The specified prefix appears to be a top level directory
  • 图论算法精解(Java 实现):从基础到高频面试题
  • 单链表C语言实现
  • Web项目流程总结
  • 第七章:数据存储策略与状态恢复机制实录
  • Bently Nevada 3500/61 非隔离I/O模块 (133819-02)
  • 一命通关单调栈
  • 工业轴承故障检测技术现状:中国智造的突破与挑战
  • 微信小程序自行diy选择器有效果图
  • 第20天-python生成word文档
  • 《MQTT 从 0 到 1:原理、实战与面试指南全解》
  • PostgreSQL相比Oracle有哪些优势?
  • 一朵由钢片织成的云 ——超“限”的结构
  • 精通Python:使用Pandas进行数据处理与分析
  • PortgreSQL常用操作
  • AI应用电商篇汇总(持续补充)
  • 让蜂鸣器报警并退出
  • 判断一个元素是否在可视区域
  • 嵌入式学习的第二十五天-系统编程-标准I0与文件IO
  • Agentic Loop与MCP:大模型能力扩展技术解析
  • 06 接口自动化-框架封装思想建立之httprunner框架(下)
  • 算法--js--电话号码的字母组合