xlistview上拉加载 下拉刷新
来源:互联网 发布:哪个炒股软件最好 编辑:程序博客网 时间:2024/05/29 16:34
XListView是一个含有下拉刷新、上拉加载功能的Android开源项目。特点是代码量极少(只有3个java文件和2个xml文件即可实现),虽然功能较为单一,但是在项目开发中很
实用。并且由于代码量小,可以很轻松的理解下拉刷新和下拉加载的源码机制,并加以自定制。
Xlistview项目主要是三部分:XlistView,XListViewHeader,XListViewFooter,分别是XListView主体、header、footer的实现。
1.首先要把xlistviewlibrary这个XlistView封装项目导入studio,也就是首先将这三个类导入到你的工程中
2.之后要添加依赖,(Ctrl+Alt+Shift+s),之后点Dependencies,之后点加号(+),再点Module dependency,知道自己的封装类,点击OK,刷新Dradle
3.在布局中添加XListViee
//依赖 是下载的一个XListView Module
import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bwei.Bean.Goods;import com.bwei.Bean.IToos;import com.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;
//实现XListView.IXListViewListenerpublic class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ //接口数据
String url = "https://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0&qtime=20160411091603";
List<Goods.ResultBean.RowsBean> list=new ArrayList<>();
private XListView xlistview;
private Mydatapar mydatapar;
private ImageLoader instance; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取xlistview控件 xlistview = (XListView) findViewById(R.id.xl); //实力化适配器 mydatapar = new MainActivity.Mydatapar(); //获取适配器 xlistview.setAdapter(mydatapar);
////获取liawang数据 getNetData(); //获取全局适配 instance = ImageLoader.getInstance(); ///让XListView有上拉加载的功能; xlistview.setPullLoadEnable(true); // 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 xlistview.setXListViewListener(this); } private void getNetData() { //匿名Asncytack new MyAsncytack().execute(url); } /** * 下拉刷新 */ @Override public void onRefresh() { //晴空集合 list.clear(); //获取联网数据 getNetData(); } /** * 上拉加载 */ @Override public void onLoadMore() { //获取联网数据 getNetData(); } /** * 让刷新头 或者刷新底部ui返回; */ private void uiComplete(){ xlistview.stopRefresh();//停止刷新 xlistview.stopLoadMore();//停止上拉加载更多 xlistview.setRefreshTime("刚刚"); } class MyAsncytack extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { String ioss = strings[0]; String ioss1 = IToos.ioss(ioss); return ioss1; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson g=new Gson(); Goods goods = g.fromJson(s, Goods.class); List<Goods.ResultBean.RowsBean> rows = goods.getResult().getRows();
//把从网络解析的数据放到adapter使用的集合里; list.addAll(rows); mydatapar.notifyDataSetChanged(); // 让刷新头 或者刷新底部ui返回 uiComplete(); } };class Mydatapar 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.f1, null); } TextView tv = view.findViewById(R.id.tv);
ImageView img =view.findViewById(R.id.img);
tv.setText(list.get(i).getFang_type());
//获取图片路径String default_image = list.get(i).getInfo().getDefault_image(); //调用全局适配
instance.displayImage(default_image,img); return view; } }}
阅读全文
0 0
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- 上拉刷新--下拉加载XListView
- XListView上拉加载下拉刷新
- xlistview上拉刷新、下拉加载
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- Xlistview上拉加载下拉刷新
- xlistview上拉刷新,下拉加载
- 上拉刷新下拉加载xlistview-------string
- 上拉刷新下拉加载xlistview--------activity_main
- XlistView的上拉刷新下拉加载
- 使用ajax跨域请求时,后台无法获取到token
- 恢复git误操作删除的远程分支
- Nodejs中Log4js使用
- 数据结构—链表的操作小结
- 数组与字符串间转换
- xlistview上拉加载 下拉刷新
- Irrelevant Elements UVA
- python+selenium自动化测试之路Day5之浏览器的基本操作方法详解
- Java并发编程线程中:Callable、Future和FutureTask类
- Codeforces Round #444 (Div. 2) C
- jQuery中ajax学习记录
- jsonp原理详解
- 78. Subsets
- 安排课程-LintCode