Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發-Retrofit-AndroidStudio(二)Json

Android開發-Retrofit-AndroidStudio(二)Json

編輯:關於Android編程

文字說明都在代碼和圖片上了。

唯一要注意的是,Json或者圖片等工程類包,需要自己去官網下載~~

另外,這邊還用到一個Google的注解jar包~~

 

\

 

\

 

\

 

Cook.java::

 

package com.iwanghang.retrofitdemo;

import com.google.gson.annotations.SerializedName;

/**
 * @SerializedName 表示注解
 */
public class Cook {
    @SerializedName("id")
    private int id;
    @SerializedName("name")
    private String name;//名稱
    @SerializedName("food")
    private String  food;//食物
    @SerializedName("img")
    private String img;//圖片
    @SerializedName("images")
    private String images;//圖片,
    @SerializedName("description")
    private String description;//描述
    @SerializedName("keywords")
    private String keywords;//關鍵字
    @SerializedName("message")
    private String message;//資訊內容
    @SerializedName("count")
    private int count ;//訪問次數
    @SerializedName("fcount")
    private int fcount;//收藏數
    @SerializedName("rcount")
    private int rcount;//評論讀數

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFood() {
        return food;
    }

    public void setFood(String food) {
        this.food = food;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getKeywords() {
        return keywords;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }

    public String getMessage() {
        return message;
    }

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

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getFcount() {
        return fcount;
    }

    public void setFcount(int fcount) {
        this.fcount = fcount;
    }

    public int getRcount() {
        return rcount;
    }

    public void setRcount(int rcount) {
        this.rcount = rcount;
    }
}

 

Tngou.java:

 

package com.iwanghang.retrofitdemo;

import com.google.gson.annotations.SerializedName;

import java.util.List;

/**
 * @SerializedName 表示注解
 */
public class Tngou {
    @SerializedName("status")
    private boolean status;
    @SerializedName("total")
    private int total;
    @SerializedName("tngou")
    private List list;

    public boolean isStatus() {
        return status;
    }

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

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }
}

 

Service.java:

 

package com.iwanghang.retrofitdemo;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * http://www.tngou.net/doc/cook/71
 *
 * 請求參數
 *  參數	必選	類型	說明
 * page	否	int	請求頁數,默認page=1
 * rows	否	int	每頁返回的條數,默認rows=20
 * id	否	int	分類ID,默認返回的是全部。這裡的ID就是指分類
 *
 * @Query 表示注解
 */
public interface Service {
    @GET("/api/cook/list")
    Call getList(@Query("id") int id, @Query("page") int page, @Query("rows") int rows);
}

 

MainActivity.java:

 

package com.iwanghang.retrofitdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import com.iwanghang.retrofitdemo.gson.GsonConverterFactory;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;

/**
 * Retrofit官方Demo
 * https://github.com/square/retrofit
 */
public class MainActivity extends AppCompatActivity implements Callback {

    TextView main_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * 實例化Retrofit
         * Converter 轉換器 可以轉換任意數據類型
         */
        Retrofit retrofit =
                new Retrofit.Builder().baseUrl("http://www.tngou.net")
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();
        Service service = retrofit.create(Service.class);
        Call call = service.getList(0, 1, 20);
        call.enqueue(this);

        main_text = (TextView) findViewById(R.id.main_text);

    }

    // 異步請求 成功
    @Override
    public void onResponse(Call call, Response response) {
        Toast.makeText(this, "請求成功", Toast.LENGTH_SHORT).show();
        List list = response.body().getList();
        main_text.setText(list.toString());
    }

    // 異步請求 失敗
    @Override
    public void onFailure(Call call, Throwable t) {
        Toast.makeText(this, "請求失敗"+call.request().url(), Toast.LENGTH_SHORT).show();
        t.printStackTrace();
    }

}


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved