包含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<