Xlistview加载更多

来源:互联网 发布:淘宝产品详情页素材 编辑:程序博客网 时间:2024/06/05 16:18
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private XListView xlv;    private MyAdapter myAdapter;    private boolean flag;    private List<Bean.DataBean> data;    private boolean flaginfo;    private Dao dao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xlv = (XListView) findViewById(R.id.xlv);        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);        dao = new Dao(this);        shujuku();        getinit();
    //xlv的点击事件    xlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {            //实例化一个意图            Intent intent = new Intent(MainActivity.this, SecondActivity.class);            //传值            intent.putExtra("path",data.get(i-1).getShare_url());            startActivity(intent);        }    });}public void getinit(){    getData("地址");}//第一次解析数据public void getinfo1(String s){    //解析数据    Gson gson = new Gson();    Bean bean = gson.fromJson(s, Bean.class);    data = bean.getData();   //调用适配器   myAdapter = new MyAdapter(MainActivity.this, data);   xlv.setAdapter(myAdapter);}//第二次解析数据public void getinfo2(String s){    //解析数据    Gson gson = new Gson();    Bean bean = gson.fromJson(s, Bean.class);    List<Bean.DataBean> list = bean.getData();    if (flag==true){
        //上拉加载加载到头        data.addAll(0,list);    }else{
        //在信息的尾部        data.addAll(list);    }
    //刷新适配器    myAdapter.notifyDataSetChanged();}//从数据库取数据public void shujuku(){    String s = dao.sele();    if (s != null) {        //解析数据        Gson gson = new Gson();        Bean bean = gson.fromJson(s, Bean.class);        data = bean.getData();        //调用适配器        myAdapter = new MyAdapter(MainActivity.this, data);        xlv.setAdapter(myAdapter);    }}public void getData(String url){    new AsyncTask<String,Void,String>(){        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);           //数据库的判断 
          if (s!=null){                dao.updateinfo(s);            }else{                dao.sele();            }            if (flaginfo){                getinfo2(s);            }else{
                //设置为true下次就不执行                flaginfo=true;                getinfo1(s);            }        }        @Override        protected String doInBackground(String... strings) {            try {                URL url=new URL(strings[0]);                //创建HttpURLConnection对象                HttpURLConnection connection = (HttpURLConnection) url.openConnection();                //请求的方式                connection.setRequestMethod("GET");                connection.setConnectTimeout(5000);                connection.setReadTimeout(5000);                //请求码                Thread.sleep(5000);                int code = connection.getResponseCode();                if (code==200){                    InputStream is = connection.getInputStream();                    String str = MyUtil.getStr(is);                    System.out.println("================================"+str);                    //返回字符串                    dao.add(str);                    return str;                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }    }.execute(url);}//下拉刷新@Overridepublic void onRefresh() {    flag=true;    getinit();    xlv.stopRefresh(true);}//上拉加载更多@Overridepublic void onLoadMore() {    flag=false;    getinit();    xlv.stopLoadMore();}
原创粉丝点击