NetFragmnet :
package com.example.month_three; import android.app.Fragment; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class NetFragment extends Fragment { RecyclerView rv; ListmDatas = new ArrayList<>(); private NetAdapter adapter; String url = "http://www.moviebase.cn/uread/app/category/categoryList?platform=2&deviceId=A8C73E0D1ED1A2BED491C9238C8FD8A0&channelId=1003&appVersion=1.7.0"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_net, container, false); rv = (RecyclerView) view.findViewById(R.id.net_rv); // 布局管理者 LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(manager); // 数据源 // 适配器 adapter = new NetAdapter(getActivity(),mDatas); rv.setAdapter(adapter); // 加载网络数据 loadWebData(); return view; } private void loadWebData() { new AsyncTask ,Void,String>(){ @Override protected String doInBackground(Void... voids) { String content = HttpUtils.getStringContent(url); return content; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s!=null&&!s.isEmpty()) { Gson gson = new Gson(); NetBean netBean = gson.fromJson(s, NetBean.class); List list = netBean.getArticleList(); mDatas.addAll(list); adapter.notifyDataSetChanged(); } } }.execute(); } }
NetBean :
package com.example.month_three; import java.util.List; /** * Created by Misaya on 2018/4/4. */ public class NetBean { private int retCode; private int topicSubscribeUpdateNum; private String topicSubscribeUpdateList; private String requestId; private String retMsg; private int articleSubscribeUpdateNum; private ListtopicRecommendList; private List authorList; private List sourceList; private List articleList; public int getRetCode() { return retCode; } public void setRetCode(int retCode) { this.retCode = retCode; } public int getTopicSubscribeUpdateNum() { return topicSubscribeUpdateNum; } public void setTopicSubscribeUpdateNum(int topicSubscribeUpdateNum) { this.topicSubscribeUpdateNum = topicSubscribeUpdateNum; } public String getTopicSubscribeUpdateList() { return topicSubscribeUpdateList; } public void setTopicSubscribeUpdateList(String topicSubscribeUpdateList) { this.topicSubscribeUpdateList = topicSubscribeUpdateList; } public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public String getRetMsg() { return retMsg; } public void setRetMsg(String retMsg) { this.retMsg = retMsg; } public int getArticleSubscribeUpdateNum() { return articleSubscribeUpdateNum; } public void setArticleSubscribeUpdateNum(int articleSubscribeUpdateNum) { this.articleSubscribeUpdateNum = articleSubscribeUpdateNum; } public List getTopicRecommendList() { return topicRecommendList; } public void setTopicRecommendList(List topicRecommendList) { this.topicRecommendList = topicRecommendList; } public List getAuthorList() { return authorList; } public void setAuthorList(List authorList) { this.authorList = authorList; } public List getSourceList() { return sourceList; } public void setSourceList(List sourceList) { this.sourceList = sourceList; } public List getArticleList() { return articleList; } public void setArticleList(List articleList) { this.articleList = articleList; } public static class TopicRecommendListBean { /** * headImgUrl : http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@480w * imgUrl : http://img.moviebase.cn/img/topic/2017/09/b9add2d4aa2d448aa260664e4401a6ba.jpg@!2x.webp * id : 44e9ea47bbd8401590d9a8ae3a3b283b * title : 北美新片 * desc : 来自米国院线的最新票房和口碑 * isSub : 0 * recommendImgUrl : http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@484w * isSubscribe : 0 * subscribeNum : 2616 * articlesNum : 58 */ private String headImgUrl; private String imgUrl; private String id; private String title; private String desc; private String isSub; private String recommendImgUrl; private int isSubscribe; private int subscribeNum; private int articlesNum; public String getHeadImgUrl() { return headImgUrl; } public void setHeadImgUrl(String headImgUrl) { this.headImgUrl = headImgUrl; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getIsSub() { return isSub; } public void setIsSub(String isSub) { this.isSub = isSub; } public String getRecommendImgUrl() { return recommendImgUrl; } public void setRecommendImgUrl(String recommendImgUrl) { this.recommendImgUrl = recommendImgUrl; } public int getIsSubscribe() { return isSubscribe; } public void setIsSubscribe(int isSubscribe) { this.isSubscribe = isSubscribe; } public int getSubscribeNum() { return subscribeNum; } public void setSubscribeNum(int subscribeNum) { this.subscribeNum = subscribeNum; } public int getArticlesNum() { return articlesNum; } public void setArticlesNum(int articlesNum) { this.articlesNum = articlesNum; } } public static class AuthorListBean { /** * id : 0185e0a334e54866bcc423322c02e217 * logo : http://img.moviebase.cn/img/other/2017/09/79174c2dabc94f89983488c09de74e78.jpg@130w * nickname : 手动贩卖机 * description : 人不如机器。 */ private String id; private String logo; private String nickname; private String description; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getLogo() { return logo; } public void setLogo(String logo) { this.logo = logo; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } public static class SourceListBean { /** * id : 19f2cd89ca904eb69e51f7d6e8a1e679 * logo : http://img.moviebase.cn/img/source/2018/02/c526cc8be95944399a68197c778ee1ab.png@130w * nickname : 巴塞电影 * description : 资深电影编辑团队每日为你更新最有品、有料、原创、独家的电影资讯和深度解读。公众号:MovieBase */ private String id; private String logo; private String nickname; private String description; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getLogo() { return logo; } public void setLogo(String logo) { this.logo = logo; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } public static class ArticleListBean { /** * imgUrl : http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w * id : 0677ba5d32d34ed09c66b5bf8c699edb * articleContentUrl : http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0 * pubDate : 1520931197 * praiseCount : 54 * title : 人间是否已耳聋?20年后,再听1998华语流行神曲 * description : * sourceName : 巴塞电影 * image : http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w * careateDate : 1520913387 * articleUrl : http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0 * sourceId : 19f2cd89ca904eb69e51f7d6e8a1e679 */ private String imgUrl; private String id; private String articleContentUrl; private int pubDate; private String praiseCount; private String title; private String description; private String sourceName; private String image; private int careateDate; private String articleUrl; private String sourceId; public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getArticleContentUrl() { return articleContentUrl; } public void setArticleContentUrl(String articleContentUrl) { this.articleContentUrl = articleContentUrl; } public int getPubDate() { return pubDate; } public void setPubDate(int pubDate) { this.pubDate = pubDate; } public String getPraiseCount() { return praiseCount; } public void setPraiseCount(String praiseCount) { this.praiseCount = praiseCount; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getSourceName() { return sourceName; } public void setSourceName(String sourceName) { this.sourceName = sourceName; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public int getCareateDate() { return careateDate; } public void setCareateDate(int careateDate) { this.careateDate = careateDate; } public String getArticleUrl() { return articleUrl; } public void setArticleUrl(String articleUrl) { this.articleUrl = articleUrl; } public String getSourceId() { return sourceId; } public void setSourceId(String sourceId) { this.sourceId = sourceId; } } }
NetAdapter :
package com.example.month_three; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Picasso; import java.util.List; /** * Created by Misaya on 2018/4/4. */ public class NetAdapter extends RecyclerView.Adapter{ private Context context; private List mDatas; public NetAdapter(Context context, List mDatas) { this.context = context; this.mDatas = mDatas; } @Override public NetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_net, parent, false); NetViewHolder holder = new NetViewHolder(view); return holder; } @Override public void onBindViewHolder(NetViewHolder holder, int position) { NetBean.ArticleListBean bean = mDatas.get(position); holder.tv.setText(bean.getTitle()); // 显示图片 Picasso.with(context).load(bean.getImgUrl()).into(holder.iv); } @Override public int getItemCount() { return mDatas.size(); } class NetViewHolder extends RecyclerView.ViewHolder{ ImageView iv; TextView tv; public NetViewHolder(View itemView) { super(itemView); iv = (ImageView) itemView.findViewById(R.id.item_net_iv); tv = (TextView) itemView.findViewById(R.id.item_net_tv); } } }
HttpUtils :
package com.example.month_three; import java.io.IOException; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by Misaya on 2018/4/4. */ public class HttpUtils { public static String getStringContent(String path){ OkHttpClient client = new OkHttpClient(); //客户端对象 // 获得请求对象 Request request = new Request.Builder().get().url(path).build(); try { // 发起请求,获取响应对象 Response response = client.newCall(request).execute(); if (response.isSuccessful()) { String s = response.body().string(); return s; } } catch (IOException e) { e.printStackTrace(); } return null; } }