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