//主界面(包括优化Listview)
import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView lv; private List<StudentBean.NewslistBean> list; private MyAdapter myAdapter; private TextView mTV; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); //创建集合 list = new ArrayList<StudentBean.NewslistBean>(); //获取笛地址 intData(); myAdapter = new MyAdapter(); } //获取地址 private void intData() {
//网络地址(直接更换) new MyAsyncTaskString().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); } //适配器 class MyAdapter extends BaseAdapter{ @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) { if(view==null){ view= View.inflate(MainActivity.this,R.layout.init_list,null); mTV = view.findViewById(R.id.tv); img = view.findViewById(R.id.img); } //添加图片到listview new MyAsyncTaskBitmap(img).execute(list.get(i).getPicUrl()); mTV.setText(list.get(i).getTitle()); return view; } } //获取图片 class MyAsyncTaskBitmap extends AsyncTask<String,Void,Bitmap>{ ImageView img; public MyAsyncTaskBitmap(ImageView img) { this.img = img; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Bitmap doInBackground(String... strings) { return new User().getBitmap(strings[0]); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); img.setImageBitmap(bitmap); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } //获取String class MyAsyncTaskString extends AsyncTask<String,Void,String>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... strings) { return new User().getJsonString(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); StudentBean studentBean = gson.fromJson(s, StudentBean.class); list = studentBean.getNewslist(); lv.setAdapter(myAdapter); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } }
//解析数据
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; /** * author:Created by WangZhiQiang on 2017/9/5. */ public class User { //解析String public String getJsonString(String string){ try { URL url = new URL(string); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); if(code==200){ InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder stringBuilder = new StringBuilder(); String temp=""; while ((temp=bufferedReader.readLine())!=null){ stringBuilder.append(temp); } String s = stringBuilder.toString(); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } //解析图片(Bitmap) public Bitmap getBitmap(String string){ try { URL url = new URL(string); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); if(code==200){ InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (Exception e) { e.printStackTrace(); } return null; } }//主界面布局<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.aaa.zhoukao_lian1.MainActivity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.constraint.ConstraintLayout>//Listview布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>//网络权限<uses-permission android:name="android.permission.INTERNET"></uses-permission>