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; } } }
上拉加载更多和下拉刷新
最新推荐文章于 2019-06-11 17:34:21 发布