1. 程式人生 > >OKhttp+Gson實現從網路上獲取最新新聞

OKhttp+Gson實現從網路上獲取最新新聞

直接上效果圖,畫面太美,請保護好自己的小心臟。能畫出這麼漂亮的UI我都佩服我寄幾。

新聞列表:

這裡寫圖片描述

新聞詳情:

這裡寫圖片描述
是的 都是最新的新聞。、

實現

下面我們就來看看具體怎麼實現的:
我一直覺得思路是非常重要的所以我先講思路,有了思路,做起來就非常迅速了
先講思路:
1.最新的新聞都是由聚合資料提供的(json資料),我們去申請下就好了;(當然你們也可以用我的URL,講道理,是沒有問題的)
2.通過OKhttp去網路URL,獲取到Json資料;
3.通過Gson將Json資料轉化為Java;
4.通過Adapter往Listview新增資料;
5.通過Glide載入圖片;
6.通過點選事件進入新聞詳情。

滿滿的框架,簡直不要太簡單。不過希望大家還是需要去了解框架的具體實現。

下面貼出程式碼:
MainActivity:

package com.wind.okhttp;

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.bumptech.glide.Glide; import com.wind.okhttp.model.NewsBean; import java.util.List; /** * Created by zhangcong on 2017/4/25. */ //adapter 適配資料 public class NewsListBaseAdapter extends BaseAdapter { public static List<NewsBean.Second.Third> list; private Context context; public NewsListBaseAdapter
(List<NewsBean.Second.Third> list,Context context) { this.context=context; this.list=list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder=null; if (convertView==null) { viewHolder=new ViewHolder(); convertView= LayoutInflater.from(context).inflate(R.layout.item_new_list,null,false); viewHolder.imageView= (ImageView) convertView.findViewById(R.id.iv_news_list_image); viewHolder.title= (TextView) convertView.findViewById(R.id.tv_news_list_title); viewHolder.author= (TextView) convertView.findViewById(R.id.tv_news_list_realtype); viewHolder.time= (TextView) convertView.findViewById(R.id.tv_news_list_time); convertView.setTag(viewHolder); } viewHolder= (ViewHolder) convertView.getTag(); Glide.with(context).load(list.get(position).thumbnail_pic_s).into(viewHolder.imageView);//Glide 載入圖片 viewHolder.title.setText(list.get(position).title); viewHolder.time.setText(list.get(position).date); viewHolder.author.setText(list.get(position).author_name); return convertView; } class ViewHolder { private ImageView imageView; private TextView title; private TextView author; private TextView time; } }

具體的思路已經給出了,稍微配合下demo就能看得懂的,邏輯啥的都是非常簡單的。