XlistView基础运用(下拉刷新,上拉加载,listview优化)
来源:互联网 发布:php 执行cmd命令 编辑:程序博客网 时间:2024/06/02 04:19
在布局文件中创建xlistview控件
<com.bwie.xlistviewlibrary.View.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent"/>
实现XListView.IXListViewListener接口
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
有网络图片,创建ImageLoader实例(要初始化组件),设置适配器,然后联网请求数据
//初始化组件(配置name属性)import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * author:Created by WangZhiQiang on 2017-10-10. * 系统启动 会先运行这个MApp,所以我们在这里进行初始化 框架 组件等等; */public class MApp extends Application{ @Override public void onCreate() { super.onCreate(); //初始化组件 ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(configuration); }}
设置xlistview上拉加载的功能和把实现类设在接口回调中
xListView.setPullLoadEnable(true); //让XListView有上拉加载的功能; xListView.setXListViewListener(this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了
import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.bwie.xlistviewlibrary.View.XListView;import com.bwie.xlistviewlibrary.utils.NetWordUtils;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;/** * 实现IXListView接口; */public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { String url = "http://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"; private XListView xListView; List<Goods.ResultBean.RowsBean> list = new ArrayList<>(); //大集合 private MAdapter mAdapter; private ImageLoader imageLoaderInstances; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xListView = (XListView) findViewById(R.id.xlv); imageLoaderInstances = ImageLoader.getInstance(); mAdapter = new MAdapter(); xListView.setAdapter(mAdapter); getNetData();//联网请求数据 xListView.setPullLoadEnable(true); //让XListView有上拉加载的功能; xListView.setXListViewListener(this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 } private void getNetData() { new MAsyncTask().execute(url); } class MAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Goods goods = gson.fromJson(s, Goods.class); //得到集合; List<Goods.ResultBean.RowsBean> rows = goods.getResult().getRows(); //把从网络解析的数据放到adapter使用的集合里; list.addAll(rows); mAdapter.notifyDataSetChanged(); uiComplete();// 让刷新头 或者刷新底部ui返回; } } class MAdapter extends BaseAdapter { private ViewHolder viewHolder; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { viewHolder = new ViewHolder(); view = View.inflate(MainActivity.this, R.layout.listview, null); viewHolder.tv = (TextView) view.findViewById(R.id.textView); viewHolder.iv = (ImageView) view.findViewById(R.id.imageView); view.setTag(viewHolder); }else{ viewHolder= (ViewHolder) view.getTag(); } viewHolder.tv.setText(list.get(i).getInfo().getLoupan_name()); imageLoaderInstances.displayImage(list.get(i).getInfo().getDefault_image(),viewHolder.iv); return view; } } class ViewHolder { ImageView iv; TextView tv; } /** * 下拉刷新 */ @Override public void onRefresh() { list.clear(); getNetData(); } /** * 上啦加载 */ @Override public void onLoadMore() { getNetData(); } /** * 让刷新头 或者刷新底部ui返回; */ private void uiComplete(){ xListView.stopRefresh();//停止刷新 xListView.stopLoadMore();//停止上拉加载更多 xListView.setRefreshTime("刚刚"); }}
阅读全文
0 0
- XlistView基础运用(下拉刷新,上拉加载,listview优化)
- LIstView多条目展示+XListView下拉刷新,上拉加载
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- 上拉刷新--下拉加载XListView
- XListView上拉加载下拉刷新
- xlistview上拉刷新、下拉加载
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- Xlistview上拉加载下拉刷新
- xlistview上拉刷新,下拉加载
- 上拉刷新下拉加载xlistview-------string
- Java如何定义一个二维数组
- Flume自定义SyslogSink
- 【云星数据---大数据部集群署系列010】:alluxio命令行操作概览
- 关于Nginx与Apache共存的解决方法
- java 多线程Condition接口的使用
- XlistView基础运用(下拉刷新,上拉加载,listview优化)
- FPGA实验一——项目创建、编译和下载
- asyncio/aiohttp 异步爬取douban
- 双11的凌晨_如何证明你是一只程序猿?
- ALTER TABLE
- vs2013+WDK8.1+WinDbg调试驱动开发环境配置(多帖子整理,水原创)
- 双十一,我的购物清单
- CSS3中的过渡
- 阿里云RDS for SQL Server使用的一些最佳实践