安卓--XListView--pizifusheng

来源:互联网 发布:网络人身攻击怎么办 编辑:程序博客网 时间:2024/05/30 05:40

package com.example.xlist_view;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import com.bawei.jane.mxlistview.view.XListView;import com.google.gson.Gson;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity {    private XListView xlv;    private int pageIndex=1;    private  String urlpart="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";    private String url=urlpart+pageIndex;    private MyAdapter adapter;    private List<Result.DataBean> data=new ArrayList<>();    //操作类型 1:刷新操作  2:加载更多的操作    private int operType=1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xlv = findViewById(R.id.xlv);        xlv.setPullLoadEnable(true);        xlv.setPullRefreshEnable(true);        xlv.setXListViewListener(new XListView.IXListViewListener() {            @Override            public void onRefresh() {                pageIndex=1;                url=urlpart+pageIndex;                operType=1;                MyAsytask myTask=new MyAsytask();                myTask.execute(url);            }            @Override            public void onLoadMore() {                //页数增加                pageIndex++;                url=urlpart+pageIndex;                //重新赋值                operType=2;//加载更多                Log.d("zzz","loadMore:"+url);                MyAsytask task=new MyAsytask();                task.execute(url);            }        });        MyAsytask task=new MyAsytask();        task.execute(url);    }    class MyAsytask extends AsyncTask<String,Void,String>{        @Override        protected String doInBackground(String... strings) {            try {                URL url=new URL(strings[0]);                HttpURLConnection connection= (HttpURLConnection) url.openConnection();               connection.setConnectTimeout(5000);               connection.setReadTimeout(5000);               connection.setRequestMethod("GET");               if (connection.getResponseCode()==200){                   InputStream inputStream = connection.getInputStream();                   String s = StreamToString.streamToStr(inputStream, "utf-8");                   return s;               }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson=new  Gson();            Result result = gson.fromJson(s, Result.class);            if(operType==1){//代表刷新操作                data.clear();//清空原有的集合数据            }            data.addAll(result.getData());            setAdapter();            if(operType==1){                xlv.stopRefresh();//关闭头布局                Date date=new Date(System.currentTimeMillis());                SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                String refreshTime = sf.format(date);                xlv.setRefreshTime(refreshTime);//设置刷新时间            }else{                xlv.stopLoadMore();//关闭尾布局            }        }    }    private void setAdapter() {        if(adapter==null){            adapter = new MyAdapter(data,MainActivity.this);            xlv.setAdapter(adapter);        }else{            adapter.notifyDataSetChanged();        }    }}
原创粉丝点击