PullToRefreshListView上拉刷新,下拉加载
来源:互联网 发布:strutting it 编辑:程序博客网 时间:2024/05/17 22:53
/*
*activity_main
*/
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bawei.day15_demo01_pulltorefresh01.MainActivity"> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#000000" android:divider="#19000000" android:dividerHeight="4dp" android:fadingEdge="none" android:fastScrollEnabled="false" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:smoothScrollbar="true" ptr:ptrAnimationStyle="rotate" ptr:ptrHeaderTextColor="#ffffff" ptr:ptrHeaderSubTextColor="#00ffff" ptr:ptrHeaderBackground="@null" ptr:ptrDrawable="@mipmap/ic_launcher"/></RelativeLayout>
/*
*MainActivity
*/
/*package com.bawei.day15_demo01_pulltorefresh01;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import android.widget.Toast;import com.bawei.adapter.MyBaseAdapter;import com.bawei.bean.News;import com.bawei.bean.SuperClass;import com.bawei.utils.NetWorkUtil;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private PullToRefreshListView listView; private static final String JSON_URL = "http://www.93.gov.cn/93app/data.do?channelId=2&startNum="; private MyBaseAdapter myAdapter; private ArrayList<News> newsList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化组件 initView(); //初始化加载数据 initData(); } private void initData() { pullToRefreshData(); } //下拉刷新 private void pullToRefreshData() { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... params) { String jsonStr = new NetWorkUtil().getJsonHttpURLConnectionGet(JSON_URL+"1"); return jsonStr; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析json SuperClass superClass = new Gson().fromJson(s, SuperClass.class); newsList = superClass.getData(); myAdapter = new MyBaseAdapter(MainActivity.this,newsList); listView.setAdapter(myAdapter); listView.onRefreshComplete();//停止刷新 } }.execute(); } int index = 1; //上拉加载 private void loadMoreData() { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... params) { index++; String jsonStr = new NetWorkUtil().getJsonHttpURLConnectionGet(JSON_URL+index); return jsonStr; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析json SuperClass superClass = new Gson().fromJson(s, SuperClass.class); newsList.addAll(superClass.getData()); myAdapter.notifyDataSetChanged(); } }.execute(); } private void initView() { listView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() { @Override public void onRefresh(PullToRefreshBase<ListView> refreshView) { //当下拉刷新,进入此方法 Toast.makeText(MainActivity.this,"下拉刷新",Toast.LENGTH_SHORT).show(); //加载新数据,刷新显示 pullToRefreshData(); } }); listView.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() { @Override public void onLastItemVisible() { Toast.makeText(MainActivity.this,"上拉显示出listview的最后一行",Toast.LENGTH_SHORT).show(); loadMoreData(); } }); }}
*NetWorkUtil
*/
package com.bawei.utils;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * Created by dell on 2017-09-15. */public class NetWorkUtil { public String getJsonHttpURLConnectionGet(String jsonUrl){ URL url = null; HttpURLConnection httpURLConnection = null; String strJson = ""; try { url = new URL(jsonUrl); httpURLConnection = (HttpURLConnection) url.openConnection(); int code = httpURLConnection.getResponseCode(); if (code == 200){ InputStream inputStream = httpURLConnection.getInputStream(); byte[] bytes = new byte[1024]; int length = 0; while((length = inputStream.read(bytes)) != -1){ strJson += new String(bytes,0,length); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return strJson; }}
/*
*MyBaseAdapter
*/
package com.bawei.adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.bawei.bean.News;import com.bawei.day15_demo01_pulltorefresh01.R;import java.util.List;/** * Created by dell on 2017-09-15. */public class MyBaseAdapter extends BaseAdapter{ private Context context; private List<News> list; public MyBaseAdapter(Context context, List<News> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null){ holder = new ViewHolder(); convertView = View.inflate(context, R.layout.listview_item,null); holder.newsName = (TextView) convertView.findViewById(R.id.newsname); holder.newsTime = (TextView) convertView.findViewById(R.id.newstime); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } holder.newsName.setText(list.get(position).getTITLE()); holder.newsTime.setText(list.get(position).getSHOWTIME()); return convertView; } class ViewHolder{ TextView newsName,newsTime; }}
/*
*listview_item
*/
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/newsname" android:layout_weight="1" /> <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/newstime" android:layout_weight="1" /></LinearLayout>
阅读全文
0 0
- PullToRefreshListView下拉刷新与上拉加载
- PullToRefreshListView 下拉刷新上拉加载
- PullToRefreshListView上拉加载更多,下拉刷新
- PullToRefreshListView上拉加载下拉刷新
- PullToRefreshListView上拉刷新,下拉加载
- PullToRefreshListView多条目加载上拉刷新下拉加载
- PullToRefreshListView下拉刷新和上拉加载更多使用方法
- PullToRefreshListView进阶(三)----->上拉加载、下拉刷新!
- 上拉刷新 下拉加载更多-PullToRefreshListView的简介
- 上拉加载下拉刷新 PullToRefreshListView 实战问题
- PullToRefreshListView实现下拉刷新和上拉加载更多
- 下拉刷新上拉加载之PullToRefreshListView的用法
- PullToRefreshListView的下拉刷新上拉加载更多问题
- PullreFreshLibrary(PullToRefreshListView)上拉刷新,下拉加载(—)
- Android自定义上拉加载下拉刷新PullToRefreshListView
- TabLayout+PullToRefreshListView上拉刷新,下拉加载,imageloader自定义
- AsyncTask+PullToRefreshListView+ImageLoder+上拉加载,下拉刷新
- 下拉刷新和上拉加载(pulltorefreshlistview)
- 想为 iPhone X 做交互设计?你需要读这篇文章
- java构造器的调用顺序
- mysql总结(一)
- 夏至未至
- arp欺骗
- PullToRefreshListView上拉刷新,下拉加载
- 人机智能交互技术示例-Leap Motion通过ROS控制机械手Gazebo仿真
- 915总结
- Docker CE安装及配置国内镜像加速教程
- udp广播测试代码
- ubuntu 16.04 安装Xilinx Platform Cable USB 驱动
- Hdu 6203 ping ping ping dfs序+树状数组维护
- mysql总结(二)
- [Leetcode] #121#122#123#188 Best Time to Buy and Sell Stock I & II & III & IV