核心提示:XML布局MainActivity主页面package com.example.weikai09d20170911; import android.os.AsyncTask; import andro...
XML布局
MainActivity主页面
package com.example.weikai09d20170911; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import com.example.weikai09d20170911.view.XListView; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { //设置地址路径 private String path="https://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="; //初始化值 private int NUM=10; private XListView xListView; private Listlist = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找到控件 xListView = (XListView) findViewById(R.id.xListView); //设置可以加载 xListView.setPullLoadEnable(true); xListView.setPullRefreshEnable(true); xListView.setXListViewListener(this); getDuqu(); } private void getDuqu() { //异步任务 AsyncTask asyncTask = new AsyncTask () { @Override protected String doInBackground(Void... voids) { try { URL url = new URL(path + NUM); //请求网络 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //设置什么方式请求 urlConnection.setRequestMethod("GET"); //设置延时 urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); int responseCode = urlConnection.getResponseCode(); //判断请求是否成功 if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); String json = LiuDeZhuanHuan(inputStream); Log.i("-------------",json.toString()); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { super.onPostExecute(json); //拿到数据 Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean.class); List list01 = bean.getData(); //将数据添加爱集合 list.addAll(list01); setadapter(); xListView.stopLoadMore(); } }; asyncTask.execute(); } //设置适配器 private void setadapter() { Myadapter myadapter = new Myadapter(MainActivity.this, list); xListView.setAdapter(myadapter); //myadapter.notifyDataSetChanged(); } //流的转化 private String LiuDeZhuanHuan(InputStream inputStream) { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuilder builder = new StringBuilder(); String string = null; try { while ((string=bufferedReader.readLine())!=null){ builder.append(string); } return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override public void onRefresh() { //下拉加载 NUM--; if (NUM>0){ AsyncTask asyncTask = new AsyncTask () { @Override protected String doInBackground(Void... voids) { try { //请求网络 URL url = new URL(path + NUM); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); //设置什么方式请求 urlConnection.setRequestMethod("GET"); //设置访问网络的延时 urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); int responseCode = urlConnection.getResponseCode(); //判断网络请求成功 if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); String json = LiuDeZhuanHuan(inputStream); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { super.onPostExecute(json); Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean.class); List list02 = bean.getData(); list.addAll(0,list02); setadapter(); xListView.stopRefresh(); } }; asyncTask.execute(); }else { //数据加载完进行提示 Toast.makeText(MainActivity.this,"数据加载完",Toast.LENGTH_LONG).show(); } } //上拉刷新 @Override public void onLoadMore() { NUM++; getDuqu(); } } Myadapter控件package com.example.weikai09d20170911; 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; /** * Created by My on 2017/9/11. */ public class Myadapter extends BaseAdapter { Context context; Listlist; public Myadapter(Context context, List 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 int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (position%2==0){ return 0; }else { return 1; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type =getItemViewType(i); ViewHolder viewHolder = null; ViewHolder2 viewHolder2 = null; switch(type){ case 1: { if(view == null){ viewHolder= new ViewHolder(); //找到控件 view =View.inflate(context,R.layout.yangshi,null); viewHolder.textview = (TextView)view.findViewById(R.id.textview); view.setTag(viewHolder); }else{ viewHolder= (ViewHolder) view.getTag(); } } break; case 0: { if(view == null){ viewHolder2 = new ViewHolder2(); //找到控件 view =View.inflate(context,R.layout.yangshi02,null); viewHolder2.textview01 = (TextView)view.findViewById(R.id.textview01); viewHolder2.imageview = (ImageView)view.findViewById(R.id.imageview); view.setTag(viewHolder2); }else{ viewHolder2 = (ViewHolder2) view.getTag(); } } break; } switch(type){ case 0: { //为控件赋值 ImageLoader.getInstance().displayImage(list.get(i).getImg(),viewHolder2.imageview); //loadImage(list.get(i).getImg(),viewHolder2.ivIcon2); viewHolder2.textview01.setText(list.get(i).getTitle()); } break; case 1: { //为控件赋值 viewHolder.textview.setText(list.get(i).getTitle()); } break; } return view; } //ViewHolder类 class ViewHolder{ TextView textview; } class ViewHolder2{ TextView textview01; ImageView imageview; } }