上拉加载更多和下拉刷新
来源:互联网 发布: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; } }}
阅读全文
0 0
- 下拉刷新和上拉加载更多
- 上拉加载更多和下拉刷新
- DropDownListView下拉刷新和上拉加载和没有更多
- iOS 下拉刷新和上拉加载更多
- 下拉刷新和上拉加载更多实现方法
- PullToRefreshListView下拉刷新和上拉加载更多使用方法
- 下拉刷新和上拉加载更多原理
- 下拉刷新和上拉加载更多原理 .
- [Android]下拉刷新和上拉加载更多Listview,仿知乎
- xListView下拉刷新和上拉加载更多
- UIScrollerView和UITableView下拉刷新,上拉加载更多
- iOS 下拉刷新和上拉加载更多
- listview的下拉刷新和上拉加载更多
- listview的上拉加载更多和下拉刷新
- android之ListView上拉加载更多和下拉刷新
- PullToRefreshListView实现下拉刷新和上拉加载更多
- RecyclerView实现下拉刷新和上拉加载更多
- Swift快速集成下拉刷新和上拉加载更多
- nginx的五种负载算法模式
- Pycaffe-简单测试caffe模型的分类效果和运行速度
- PHP常量
- 虚拟内存和物理内存
- Hbase与Mapreduce集成的案例
- 上拉加载更多和下拉刷新
- Rhyme/归并排序Java版
- win10 IIS 已启用32位程序 网站报错HTTP ERROR 503
- Linux 中 chkconfig 用法
- 最新高清IT职业技能图谱(15图)
- Linux网络编程基础--socket常用选项
- PAT:1126. Eulerian Path (25)
- ajax中xmlhttp.readyState==4 && xmlhttp.status==200 是什么意思
- Ionic3 Demo