流程介紹 1. 使用 網路框架進行 請求,獲得 數據 //一個封裝好的工具類的靜態方法 public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) { OkHttpClient ...
流程介紹
使用
okhttp
網路框架進行get
請求,獲得json
數據//一個封裝好的工具類的靜態方法 public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) { OkHttpClient client = new OkHttpClient(); CacheControl control =new CacheControl.Builder().build(); Request request = new Request.Builder() .cacheControl(control) .url(address) .build(); client.newCall(request).enqueue(callback); }
之後我們調用這個方法可以訪問網站,並獲得返回的數據
HttpUtil.sendOkHttpRequest("http://www.baidu.com" + limit, new Callback() { @Override public void onFailure(Call call, IOException e) { Toast.makeText(MainActivity.this, "網路錯誤", Toast.LENGTH_SHORT).show(); } @Override public void onResponse(Call call, Response response) throws IOException { //獲得返回的數據(按照我的例子,訪問百度,返回來的數據其實就是html文件裡面的內容 //如果是其他網站,就是返回其定義返回的數據類型) String result = response.body().string(); //調用GSON框架解析json數據,處理完畢後返回一個該相關類的List List<Data.ResBean> mlist = HttpUtil.parseJSONWithGSON(result); //之後對返回的數據進行處理或者是調用 mlist.get(1).getXXX();//相關屬性的調用 } });
使用
GSONFormat
插件將json
數據抽象為實體類(插件自動生成)去Android Studio裡面搜索GSONFormat插件,安裝重啟之後,寫一個類,然後直接按下
alt+Ins
,選擇GSONFormat,之後輸入json數據,就可以獲得一個對應的實體類了使用
GSON
框架,解析json數據,獲得實體類下麵的方法可以根據自己的需要寫
/** * 調用GSON解析json數據 * @param jsonData json數據 * @return 返回圖片實體類list */ public static List<Data.ResBean> parseJSONWithGSON(String jsonData) { //使用輕量級的Gson解析得到的json Gson gson = new Gson(); Data data = gson.fromJson(jsonData, Data.class); List<Data.ResBean> mlist = data.getRes(); return mlist; }
調用所需要的屬性即可
對象調用get方法即可獲得相關的屬性,自己需要什麼就調用什麼,這裡就不多說了。
使用
Glide
等圖片框架載入網路圖片Glide.with(context).load(url).into(imageView);
我使用的是另外一款Ion顯示圖片框架,因為之前使用Glide有些bug,第一次可以載入,但刷新數據之後就無法顯示了,可能是因為我使用的Glide3.0版本吧,然後覺得Glide4.0版本使用有些懵,就選擇了Ion,感覺和Glide差不多,之前的那個bug也是得以解決,就沒有想太多了
Ion.with(holder.imageView.getContext()) .load(url) .withBitmap() .placeholder(R.drawable.grey) .intoImageView(holder.imageView);