iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Mobile Development

Android與Spring Boot開發學習之旅系列 第 23

開發學習之旅 Day23 - 記帳應用:Android端請求資產資料

  • 分享至 

  • xImage
  •  

建立AssetsResponse

用於接收從 Spring Boot 返回的資產數據類別。當發出請求期望獲得關於資產的資訊時,Spring Boot 會將數據以 JSON 格式返回,而可以使用 AssetsResponse 類別來將對應的 JSON 數據轉換為 Java 物件。

public class AssetsResponse {
    @SerializedName("status")
    private String status;

    @SerializedName("message")
    private String message;

    @SerializedName("assetsDataList")
    private List<AssetsData> assetsDataList;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public List<AssetsData> getAssetsDataList() {
        return assetsDataList;
    }

    public void setAssetsDataList(List<AssetsData> assetsDataList) {
        this.assetsDataList = assetsDataList;
    }
}

建立AssetsData

用於表示每筆支出數據的詳細資訊。AssetsResponse 物件中的assetsDataList 屬性包含多個 AssetsData 物件,每個物件表示一筆支出記錄,可以使用 get 方法來訪問這些屬性。

public class AssetsData {
    @SerializedName("id")
    private Long id;

    @SerializedName("assetsType")
    private String assetsType;

    @SerializedName("assetsName")
    private String assetsName;

    @SerializedName("assetsValue")
    private int assetsValue;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAssetsName() {
        return assetsName;
    }

    public void setAssetsName(String assetsName) {
        this.assetsName = assetsName;
    }

    public int getAssetsValue() {
        return assetsValue;
    }

    public void setAssetsValue(int assetsValue) {
        this.assetsValue = assetsValue;
    }

    public String getAssetsType() {
        return assetsType;
    }

    public void setAssetsType(String assetsType) {
        this.assetsType = assetsType;
    }
}

使用 RxJava 與 Retrofit

建立ApiService

用於定義你的 Android 和 Spring Boot 伺服器之間的 API 請求方法。這些方法都對應了不同的 API 端點:

public interface ApiService {
    @GET("user/assets")
    Observable<AssetsResponse> getAssetsData(@Query("date") String date);

    @DELETE("user/assets")
    Observable<StatusResponse> deleteAssetsData(@Query("id") Long id);

    @POST("user/assets")
    Observable<StatusResponse> insertAssets(@Body AssetsRequest assetsRequest);
}

Rxjava ( 新增、讀取、刪除 操作 )

這邊以讀取方法為示範:

    @Override
    public void loadAssetsData(String date) {
        apiService.getAssetsData(date)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(new Observer<AssetsResponse>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(AssetsResponse assetsResponse) {
                        presenter.showAssets(assetsResponse.getAssetsDataList());
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

上一篇
開發學習之旅 Day22 - 記帳應用API:收入資料請求
下一篇
開發學習之旅 Day24 - Google FCM簡介
系列文
Android與Spring Boot開發學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言