Xlistview

来源:互联网 发布:网络授课系统 编辑:程序博客网 时间:2024/06/05 15:04
package zhangchaofei.rikao0822;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView;import android.widget.BaseAdapter;import android.widget.TextView;import com.google.gson.Gson;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity implements XListView.IXListViewListener{private XListView mylist;    private List<Bean.ResultsBean> list=new ArrayList<>();    private int limit =5;    private int page=1;    private  Mybase adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mylist=findViewById(R.id.mylist);        adapter=new Mybase();        init("http://gank.io/api/history/content/"+limit+"/"+page);        mylist.setPullRefreshEnable(true);        mylist.setPullLoadEnable(true);        mylist.setXListViewListener(this);        mylist.setAdapter(adapter);    }    private void init(String path) {        new AsyncTask<String, Void, String>() {            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                Gson gson=new Gson();                Bean bean=gson.fromJson(s,Bean.class);                list=bean.getResults();                if (list!=null&&list.size()>0){                    if (page>1){                        adapter.addData(list);                    }else{                        adapter.upData(list);                    }                    mylist.stopRefresh();                    mylist.stopLoadMore();                }            }            @Override            protected String doInBackground(String... strings) {                String path=strings[0];                try {                    URL url=new URL(path);                    HttpURLConnection con= (HttpURLConnection) url.openConnection();                    con.setRequestMethod("GET");                    con.setConnectTimeout(3000);                    int code=con.getResponseCode();                    if (code==200){                        InputStream is=con.getInputStream();                        String json=Toos.work(is);                        System.out.println(json);                        return  json;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return null;            }        }.execute(path);    }    @Override    public void onRefresh() {            page=1;        init("http://gank.io/api/history/content/"+limit+"/"+page);    }    @Override    public void onLoadMore() {       page++;        init("http://gank.io/api/history/content/"+limit+"/"+page);    }    class Mybase extends BaseAdapter{        private List<Bean.ResultsBean> beanList=new ArrayList<>();        public  void addData(List<Bean.ResultsBean> beanList){            this.beanList.addAll(beanList);            notifyDataSetChanged();        }        public void upData(List<Bean.ResultsBean> beanList){            this.beanList.clear();            addData(beanList);        }        @Override        public int getCount() {            return beanList.size();        }        @Override        public Object getItem(int i) {            return beanList.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            ViewHolder holder;            if (view==null){                holder=new ViewHolder();                view=View.inflate(MainActivity.this,R.layout.item,null);                holder.te1=view.findViewById(R.id.textView);                holder.web=view.findViewById(R.id.web);                view.setTag(holder);            }else{                holder= (ViewHolder) view.getTag();            }           Bean.ResultsBean resultsBean=beanList.get(i);            if (resultsBean.getTitle()!=null){                holder.te1.setText(resultsBean.getTitle());            }            holder.web.setVisibility(View.GONE);            return view;        }        class ViewHolder{            TextView te1;            WebView web;        }    }}