网络请求,ListView展示,图片

activity_main

<ListView
     android:id="@+id/listView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"/>

list_item

<?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="horizontal">
    
    <ImageView
        android:id="@+id/img"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@mipmap/ic_launcher_round"
        android:padding="10dp"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp">
        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="标题"
            android:textSize="20sp"/>
        <TextView
            android:id="@+id/date"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="日期"
            android:textSize="15sp"/>
    </LinearLayout>
    
</LinearLayout>

MainActivity

package wanghuiqi.bawie.com.rk_20181011;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private ListView listiew;
    private List<News.DataBean> list;
    private NewsAdapter newsAdapter;

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

        listiew = findViewById(R.id.listView);
        list = new ArrayList<>();
        //适配器
        newsAdapter = new NewsAdapter(MainActivity.this,list);
        listiew.setAdapter(newsAdapter);
        
        new AsyncTask<String, Integer, String>() {
            @Override
            protected String doInBackground(String... strings) {
                return UtilFile.getFromUtile(strings[0]);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                Gson gson = new Gson();
                News news = gson.fromJson(s, News.class);
                list.clear();
                list.addAll(news.getData());
                newsAdapter.notifyDataSetChanged();
            }
        }.execute("http://www.xieast.com/api/news/news.php?type=top&page=1");
    }
}

NewsAdapter

package wanghuiqi.bawie.com.rk_20181011;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

public class NewsAdapter extends BaseAdapter {
    private Context context;
    private List<News.DataBean> list;

    public NewsAdapter(Context context, List<News.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        Viewholder holder;
        if (view==null){
            view=View.inflate(context,R.layout.list_item,null);
            holder=new Viewholder();
            holder.img=view.findViewById(R.id.img);
            holder.title=view.findViewById(R.id.title);
            holder.date=view.findViewById(R.id.date);
            view.setTag(holder);
        }else{
            holder= (Viewholder) view.getTag();
        }
        ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder.img);
        holder.title.setText(list.get(i).getTitle());
        holder.date.setText(list.get(i).getDate());
        return view;
    }
    class Viewholder{
        ImageView img;
        TextView title,date;
    }
}

News

package wanghuiqi.bawie.com.rk_20181011;

import java.util.List;

public class News {
    private String code;
    private String msg;
    private List<DataBean> data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public class DataBean{
        private String title;
        private String date;
        private String thumbnail_pic_s;

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public String getThumbnail_pic_s() {
            return thumbnail_pic_s;
        }

        public void setThumbnail_pic_s(String thumbnail_pic_s) {
            this.thumbnail_pic_s = thumbnail_pic_s;
        }
    }
}

UtilFile

package wanghuiqi.bawie.com.rk_20181011;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

class UtilFile {
    private static String reult="";
    public static String getFromUtile(String retu) {
        try {
            URL url = new URL(retu);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setUseCaches(false);
            if (connection.getResponseCode()==200){
                InputStream is = connection.getInputStream();
                reult=getFromInputStream(is);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return reult;
    }

    private static String getFromInputStream(InputStream is) throws IOException {
        ByteArrayOutputStream boas = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len=-1;
        while ((len=is.read(buffer,0,buffer.length))!=-1){
            boas.write(buffer,0,len);
            boas.flush();
        }
        is.close();
        reult = boas.toString();
        boas.close();
        return reult;
    }
}

MyApp

package wanghuiqi.bawie.com.rk_20181011;

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        
        //图片
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(build);
    }
}

权限

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
   // ---------写name-------
    android:name=".MyApp"

配置

implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值