日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Retrofit解析网页Json数据简单实例

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Retrofit解析网页Json数据简单实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單使用了Butterknife+Retrofit


庫配置
Project級的build.gradle

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

App級的build.gradle

apply plugin: 'com.android.application' apply plugin:'android-apt'android {compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "com.android.retrofitdemo"minSdkVersion 9targetSdkVersion 23versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}} }dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.4.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.jakewharton:butterknife:8.2.1'apt 'com.jakewharton:butterknife-compiler:8.2.1' }


布局文件

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ListView android:id="@+id/news_listView"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"><ImageView android:id="@+id/news_imageView"android:layout_width="70dp"android:layout_height="70dp" /><LinearLayout android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><TextView android:id="@+id/news_title_textView"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextView android:id="@+id/news_description_textView"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout></LinearLayout>


實體類

package com.android.retrofitdemo;import com.google.gson.annotations.SerializedName;/*** 新聞數據*/public class News {@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 getCount() {return count;}public void setCount(int count) {this.count = count;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public int getFcount() {return fcount;}public void setFcount(int fcount) {this.fcount = fcount;}public String getFood() {return food;}public void setFood(String food) {this.food = food;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getImages() {return images;}public void setImages(String images) {this.images = images;}public String getImg() {return img;}public void setImg(String img) {this.img = img;}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 String getName() {return name;}public void setName(String name) {this.name = name;}public int getRcount() {return rcount;}public void setRcount(int rcount) {this.rcount = rcount;} } package com.android.retrofitdemo;import com.google.gson.annotations.SerializedName;import java.util.List;public class Tngou {@SerializedName("status")private boolean status;@SerializedName("total")private long total;@SerializedName("tngou")private List<News> newsList;public List<News> getNewsList() {return newsList;}public void setNewsList(List<News> newsList) {this.newsList = newsList;}public boolean isStatus() {return status;}public void setStatus(boolean status) {this.status = status;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;} }


數據適配器

package com.android.retrofitdemo;import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView;import com.squareup.picasso.Picasso;import java.util.Collection; import java.util.List;/*** 新聞列表適配器*/ public class NewsAdapter extends BaseAdapter{private Context mContext;private List<News> mNewsList;public NewsAdapter(Context context, List<News> newsList){mContext = context;mNewsList = newsList;}@Overridepublic int getCount() {return mNewsList.size();}@Overridepublic Object getItem(int position) {return mNewsList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if(convertView == null){convertView = LayoutInflater.from(mContext).inflate(R.layout.news_item,null);viewHolder = new ViewHolder();viewHolder.newsImageView = (ImageView) convertView.findViewById(R.id.news_imageView);viewHolder.newsTitleTextView = (TextView) convertView.findViewById(R.id.news_title_textView);viewHolder.newsDescriptionTextView = (TextView) convertView.findViewById(R.id.news_description_textView);convertView.setTag(viewHolder);}viewHolder = (ViewHolder) convertView.getTag();Picasso.with(mContext).load("http://tnfs.tngou.net/image"+mNewsList.get(position).getImg()).into(viewHolder.newsImageView);viewHolder.newsTitleTextView.setText(mNewsList.get(position).getName());viewHolder.newsDescriptionTextView.setText(mNewsList.get(position).getDescription());return convertView;}public final class ViewHolder{public ImageView newsImageView;public TextView newsTitleTextView;public TextView newsDescriptionTextView;}public void addAll(Collection<? extends News> collection){mNewsList.addAll(collection);notifyDataSetChanged();}}


網絡請求接口

package com.android.retrofitdemo;import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Query;/*** 獲取新聞列表*/ public interface NewsService {@GET("/api/cook/list" )Call<Tngou> getNews(@Query("id") int id, @Query("page") int page, @Query("rows") int rows); } package com.android.retrofitdemo;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ListView;import java.util.ArrayList; import java.util.List;import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory;public class MainActivity extends AppCompatActivity implements Callback<Tngou> {@BindView(R.id.news_listView)ListView newsListView;private NewsAdapter adapter;private List<News> newsList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);Retrofit retrofit = new Retrofit.Builder().baseUrl("http://www.tngou.net").addConverterFactory(GsonConverterFactory.create()).build();NewsService newsService = retrofit.create(NewsService.class);Call<Tngou> call = newsService.getNews(0,1,20);call.enqueue(this);ListView newsListView = (ListView) findViewById(R.id.news_listView);adapter = new NewsAdapter(this, new ArrayList<News>());newsListView.setAdapter(adapter);}@Overridepublic void onResponse(Call<Tngou> call, Response<Tngou> response) {newsList = response.body().getNewsList();adapter.addAll(newsList);}@Overridepublic void onFailure(Call<Tngou> call, Throwable t) {t.printStackTrace();} }

總結

以上是生活随笔為你收集整理的Retrofit解析网页Json数据简单实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品成人无码免费 | 国产淫片 | 国产精品扒开做爽爽爽的视频 | 日韩中文字幕综合 | 欧美a在线视频 | 亚洲AV无码久久精品国产一区 | 伊人久久大香线蕉综合网站 | www.欧美色图 | 欧美视频免费在线 | 国产视频亚洲 | 亚洲色欲色欲www在线观看 | www黄色片网站 | 久久综合一区 | 欧美最猛黑人xxxx黑人猛交 | 无码人妻丰满熟妇区bbbbxxxx | 午夜影院在线观看视频 | 综合久久久久 | 久久大伊人 | 国产精品美女www爽爽爽视频 | 人妻精品无码一区二区 | 久久久久99精品成人片试看 | 亚洲精品影院 | 国产精品成人一区二区三区 | 色久婷婷| 国产91熟女高潮一区二区 | 开心激情婷婷 | 黄色网址在线看 | 久久免费一区 | 日韩欧美成人一区二区三区 | 国产色图片 | 成人精品视频在线 | 日韩精品一区二区在线视频 | 综合久久激情 | 国产精在线 | 91成人在线免费视频 | 欧美四虎 | 18pao国产成视频永久免费 | 成人黄色大片在线观看 | 婷婷综合精品 | 亚洲国产日本 | 欧美一级做a爰片免费视频 成人激情在线观看 | 亚洲国产精彩中文乱码av | 邻居少妇张开双腿让我爽一夜 | 成人免费一级 | 久久久国产一区 | 日本黄色三级 | 男人用嘴添女人下身免费视频 | 老妇高潮潮喷到猛进猛出 | 最污的网站 | 午夜在线免费观看视频 | 亚洲小说在线 | 色婷五月 | 一区av在线 | www.黄在线| 成人欧美一区二区三区在线播放 | 欧美日韩一区视频 | av播放网站| 日本少妇喂奶漫画 | 综合五月网| av片在线观看网站 | 大地资源二中文在线影视免费观看 | 丝袜 亚洲 另类 国产 制服 | 不卡av免费 | 日韩精品视频免费播放 | 99精品一区二区 | 亚洲av片一区二区三区 | 精品国产一区一区二区三亚瑟 | 国产精品无码AV | 久久高清无码视频 | 牛牛av国产一区二区 | 黄页网站视频在线观看 | 女人久久| 亚洲手机在线 | 国产精品美女高潮无套 | 极品女神无套呻吟啪啪 | 国产亚洲一区二区三区在线观看 | www.国产欧美 | 欧美在线视频你懂的 | 亚洲AV乱码国产精品观看麻豆 | 最近免费中文字幕中文高清百度 | 中文字幕在线一 | 一卡二卡三卡在线视频 | 免费视频日韩 | 色哟哟精品观看 | 国产日韩久久久 | 深夜福利亚洲 | 亚洲污视频 | 麻豆网站免费观看 | 国产美女精品久久久 | jlzzjlzz欧美大全 | 少妇厨房愉情理伦bd在线观看 | 日韩av影片在线观看 | www中文在线 | 天堂а√在线中文在线新版 | 中国少妇乱子伦视频播放 | 综合激情网五月 | 日韩1级片| 日韩在线导航 | 三女警花合力承欢猎艳都市h |