上拉加载更多和下拉刷新

来源:互联网 发布:2017年互联网金融数据 编辑:程序博客网 时间:2024/06/05 09:20
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    int index=1;    int type=1;    private XListView xv;    private MyAdapter adapter;    private String json;    private List<Bean.DataBean> list=new ArrayList<>();    String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + index;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xv = (XListView) findViewById(R.id.xv);        //设置下拉刷新        xv.setPullRefreshEnable(true);        //设置加载更多        xv.setPullLoadEnable(true);        //设置监听事件        xv.setXListViewListener(this);        new MyTask().execute(path);    }    @Override    public void onRefresh() {            type=1;        new MyTask().execute(path);    }    @Override    public void onLoadMore() {        type=2;        index++;        new MyTask().execute(path);    }   class MyTask extends AsyncTask<String,Void,String>{       @Override       protected String doInBackground(String... strings) {           try {               URL url=new URL(strings[0]);              HttpURLConnection connection = (HttpURLConnection) url.openConnection();                connection.setRequestMethod("GET");               connection.setConnectTimeout(5000);               int code = connection.getResponseCode();               if (code==200){                   json = getTools.getstr(connection, "utf-8");               }           } catch (Exception e) {               e.printStackTrace();           }           return json;       }       @Override       protected void onPostExecute(String s) {           super.onPostExecute(s);           Gson gson=new Gson();           Bean bean = gson.fromJson(s, Bean.class);           list = bean.getData();           if (type==1){               list.addAll(bean.getData());               adapter = new MyAdapter();               xv.setAdapter(adapter);              new Handler().postDelayed(new Runnable() {                  @Override                  public void run() {                      xv.stopRefresh();                      Date date=new Date(System.currentTimeMillis());                      SimpleDateFormat adf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                      String time = adf.format(date);                      xv.setRefreshTime(time);                  }              },1000);           }else if (type==2){               list.addAll(bean.getData());               adapter.notifyDataSetChanged();               new Handler().postDelayed(new Runnable() {                   @Override                   public void run() {                      xv.stopLoadMore();                   }               },1000);           }       }   }   class MyAdapter extends BaseAdapter{       @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 View getView(int i, View view, ViewGroup viewGroup) {           if (view==null){               view=View.inflate(MainActivity.this,R.layout.item_list,null);           }          TextView tv1 = (TextView) view.findViewById(R.id.tv1);           ImageView iv = (ImageView) view.findViewById(R.id.iv);           tv1.setText(list.get(i).getNews_title());           ImageLoader.getInstance().displayImage(list.get(i).getPic_url(),iv);           return view;       }   }}