网上请求数据

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:id="@+id/listView" />
## MainActivity package com.example.a20181007_1;

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

import com.google.gson.Gson;

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

public class MainActivity extends AppCompatActivity {

private ListView listView;
private List<News.DataBean> list;
private MyAdapter adapter;

@SuppressLint("StaticFieldLeak")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //找控件
    listView = findViewById(R.id.listView);
    list = new ArrayList<>();
    adapter = new MyAdapter(MainActivity.this, list);
    listView.setAdapter(adapter);
    new AsyncTask<String, Integer, String>() {
        @Override
        protected String doInBackground(String... strings) {
            return UtilFiles.getStringFromHttp(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());
            adapter.notifyDataSetChanged();
        }
    }.execute("http://www.xieast.com/api/news/news.php?type=top&page=1");

}

}

MyAdapter

package com.example.a20181007_1;

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 MyAdapter extends BaseAdapter {

扫描二维码关注公众号,回复: 3733462 查看本文章
private Context context;
private List<News.DataBean> list;

public MyAdapter(Context context, List<News.DataBean> list) {
    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 holder = null;
    if (convertView == null){
        convertView = View.inflate(context,R.layout.item,null);
        holder = new ViewHolder();
        holder.pic = convertView.findViewById(R.id.pic);
        holder.title = convertView.findViewById(R.id.title);
        holder.name = convertView.findViewById(R.id.name);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }
    //holder.pic.setImageResource(R.drawable.ic_launcher_background);
    ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder.pic);
    holder.title.setText(list.get(position).getTitle());
    holder.name.setText(list.get(position).getDate());

    return convertView;
}

class ViewHolder{
    ImageView pic;
    TextView title;
    TextView name;
}

}

UtilFiles

package com.example.a20181007_1;

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

public class UtilFiles {
public static String getStringFromHttp(String urlstr) {
URL url = null;
String result = “”;
try {
url = new URL(urlstr);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod(“GET”);
connection.setUseCaches(false);
connection.setConnectTimeout(3000);
if (connection.getResponseCode() == 200){
InputStream is = connection.getInputStream();
result = getStringFromInputStream(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

private static String getStringFromInputStream(InputStream is) {
    String result = "";
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = -1;
        while((len = is.read(buffer,0,buffer.length))!=-1){
            baos.write(buffer,0,len);
            baos.flush();
        }
        result = baos.toString();
        is.close();
        baos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return  result;
}

}

BaseApplication

package com.example.a20181007_1;

import android.app.Application;

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

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

item.xml

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/pic"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:src="@drawable/ic_launcher_background"/>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Title"
        android:textSize="22sp"
        android:id="@+id/title"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:text="Title"
        android:id="@+id/name"/>
</LinearLayout>
**千万记住 要加权限 引用项目 Gson依赖** 1. android:name=".MyApplication"
  1. implementation ‘com.google.code.gson:gson:2.8.5’
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

猜你喜欢

转载自blog.csdn.net/qq_42785994/article/details/82960546
今日推荐