自己使用XListView

来源:互联网 发布:算法谜题 pdf 下载 编辑:程序博客网 时间:2024/06/10 16:02


import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.google.gson.Gson;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity implements  XListView.IXListViewListener{    private static final  String jsonUrl ="http://www.gank.io/api/data/Android/10/1";    private List<News> list;    private XListView xListView;    private  Myadapter myadapter;    List<News.ResultsBean> results;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取资源ID        xListView = (XListView)findViewById(R.id.xlv);        xListView.setPullLoadEnable(true);//设置可以刷新和加载        xListView.setXListViewListener(this);        //刚进来,加载第一版数据        new AsyncTask<String,Integer,String>() {            @Override            protected String doInBackground(String... params) {                //线程加载数据                String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl);                return str;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                Gson gson  = new Gson();                News news = gson.fromJson(s, News.class);                results = news.getResults();                myadapter = new Myadapter(MainActivity.this,results);                xListView.setAdapter(myadapter);            }        }.execute();    }     public void onLoad(){         xListView.stopRefresh();         xListView.stopLoadMore();         //获取当前时间         Date curDate = new Date(System.currentTimeMillis());         //格式化         SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");         String time = formatter.format(curDate);         xListView.setRefreshTime(time);     }    //下拉调用此方法    @Override    public void onRefresh() {        new AsyncTask<String,Integer,String>(){            @Override            protected String doInBackground(String... params) {                //线程加载数据                String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl);                return str;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                News news= new Gson().fromJson(s,News.class);                results = news.getResults();//得到第一页数据                myadapter = new Myadapter( MainActivity.this,results);                xListView.setAdapter(myadapter);                onLoad();            }        }.execute();    }    @Override    public void onLoadMore() {        new AsyncTask<String,Integer,String>(){            @Override            protected String doInBackground(String... params) {                //线程加载数据                String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl);                return str;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                News news = new Gson().fromJson(s,News.class);                List<News.ResultsBean> newData = news.getResults();//得到下一条数据                results.addAll(newData); //把新的一页的数据集合,加到总的数据集合                myadapter.notifyDataSetChanged(); //刷新适配器,展示全部数据                onLoad();            }        }.execute();    }}

import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;public class Myadapter extends BaseAdapter {    private Context context;    private List<News.ResultsBean> list;    public Myadapter(Context context, List<News.ResultsBean> list) {        this.context = context;        this.list = list;    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int i) {        return null;    }    @Override    public long getItemId(int i) {        return 0;    }    @Override    public int getViewTypeCount() {        return 1;    }    @Override    public int getItemViewType(int position) {        return 1;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        ViewHolder holder;        if(view== null ){             holder= new ViewHolder();             view = View.inflate(context, R.layout.item, null);             holder.textView = (TextView) view.findViewById(R.id.ltv);             view.setTag(holder);        }else {            holder =(ViewHolder) view.getTag();        }            holder.textView.setText(list.get(i).getDesc());        return view;    }    class ViewHolder{        TextView textView;    }}
 
原创粉丝点击