iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
Mobile Development

Android的30天學習歷程系列 第 11

#第11篇:Retrofit2 使用(上)

  • 分享至 

  • xImage
  •  

假設今天要到 https://jsonplaceholder.typicode.com/posts 取得裡面的資料。

第一步:安裝插件、網路權限、Retrofit2資料庫
https://ithelp.ithome.com.tw/upload/images/20200924/20129418bjKbZG6cPi.png

 <uses-permission android:name="android.permission.INTERNET" />

https://ithelp.ithome.com.tw/upload/images/20200913/2012941868tq4n9PHS.png

implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

插件安裝方法 -> Settings -> Plugins -> Browse Repositories -> 搜尋 GsonFormat -> restart
https://ithelp.ithome.com.tw/upload/images/20200913/20129418KtuPc74sOq.png
第二步:將資料新增空白的 Class 後按 Alt + Insert 匯入資料
https://ithelp.ithome.com.tw/upload/images/20200916/20129418svK7EpV8KH.png第二步:
第三步:將資料匯到生成器按右上角的 Format 之後按 ok 讓他自動生成格式
https://ithelp.ithome.com.tw/upload/images/20200916/20129418HvxfZvxv5Q.png
生成後的樣子 ▼▼▼
https://ithelp.ithome.com.tw/upload/images/20200916/20129418Vf4NELeQz0.png
第四步:在主程式使用 retrofit 語法去 API 搜尋資料

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

            Retrofit retrofit = new Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create()) // 使用 Gson 解析
                    .baseUrl("https://jsonplaceholder.typicode.com")//api的網址
                    .build();

到這裡就完成當我們進到這支 API 拿資料時我們如何獲取他回傳的資料,再來我們就需要連結到創建資料格式的class
https://ithelp.ithome.com.tw/upload/images/20200923/20129418ohCbarJSu0.png

public interface ApiService {
    @GET("/posts")//路徑
    Call<List<Modle>> getUser();//裡面的Modle為你的資料格式的class
}

再把主程式跟上面創建的 interface 連結到一起即可使用了

public class MainActivity extends AppCompatActivity {
    private ApiService apiService;
    List<Integer> id=new ArrayList<>();//由於資料是複數以上的資料所以要用list
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Retrofit retrofit = new Retrofit.Builder()
                    .addConverterFactory(GsonConverterFactory.create()) // 使用 Gson 解析
                    .baseUrl("https://jsonplaceholder.typicode.com")
                    .build();
            apiService= retrofit.create(ApiService.class);
            apiService.getUser().enqueue(new Callback<List<Modle>>() {
                @Override
                public void onResponse(Call<List<Modle>> call, Response<List<Modle>> response) {

                    for (Modle zzz:response.body()){
                        id.add(zzz.getId());
                    }
                    for (int i=0;i<id.size();i++){
                        Log.d("TAG", "id:"+id.get(i));
                    }
                }

                @Override
                public void onFailure(Call<List<Modle>> call, Throwable t) {
                    Log.d("TAG", ""+t);
                }
            });
        }

    }

上一篇
第十篇:如何掃描 QRcode
下一篇
#第12篇:Retrofit 使用(下)
系列文
Android的30天學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言