xlistview上拉刷新,下拉加载
来源:互联网 发布:win查看端口占用 编辑:程序博客网 时间:2024/06/18 04:00
package com.qianqian.xlistview;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import com.qianqian.xlistview.bean.Data;import com.qianqian.xlistview.view.xlist.XListView;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { //声明变量 XListView xlv; List<Data.NewslistBean> list=new ArrayList<Data.NewslistBean>();; int current=1; MyAdapter adapter; boolean flag=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 xlv= (XListView) findViewById(R.id.xlv); //初始化数据 initData(); //设置适配器 adapter = new MyAdapter(); //绑定 xlv.setAdapter(adapter); //刷新 xlv.setPullRefreshEnable(true); //加载 xlv.setPullLoadEnable(true); //时间 xlv.setRefreshTime("2017-10-18"); //监听 xlv.setXListViewListener(new XListView.IXListViewListener() { //刷新 @Override public void onRefresh() { flag=false; current=1; initData(); xlv.stopRefresh(); } //加载 @Override public void onLoadMore() { flag=true; current++; initData(); xlv.stopLoadMore(); } }); }//初始化数据 private void initData() { new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... parmas) { //解析 getData(); return null; } @Override protected void onPostExecute(String result) { //刷新 adapter.notifyDataSetChanged(); super.onPostExecute(result); } }.execute(); } //解析的方法 private void getData() { //路径 String path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+current; try { URL url=new URL(path); HttpURLConnection conn=(HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); int code = conn.getResponseCode(); if (code==200) { //gson解析 Gson gson=new Gson(); Data data = gson.fromJson(new InputStreamReader(conn.getInputStream()), Data.class);//list=data.getNewslist(); if (flag) { list.addAll(data.getNewslist()); } else { list=data.getNewslist(); } // list.addAll(data.getNewslist()); } } catch (Exception e) { e.printStackTrace(); } }//适配器的方法 class MyAdapter extends BaseAdapter{ @Override public int getCount() { if (list!=null){ return list.size(); } return 0; } @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) { ViewHolder holder; if (view==null) { //加载布局 view=View.inflate(MainActivity.this, R.layout.item, null); holder=new ViewHolder(); //扎控件 holder.tv_title =(TextView) view.findViewById(R.id.tv_title); holder.tv_desc =(TextView) view.findViewById(R.id.tv_desc); holder.tv_time =(TextView) view.findViewById(R.id.tv_time); holder.iv =(ImageView) view.findViewById(R.id.iv); view.setTag(holder); }else { holder=(ViewHolder) view.getTag(); } //赋值 holder.tv_title.setText(list.get(i).getTitle()); holder.tv_desc.setText(list.get(i).getDescription()); holder.tv_time.setText(list.get(i).getCtime()); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), holder.iv); return view; } }static class ViewHolder{TextView tv_title,tv_desc,tv_time; ImageView iv;}}
//图片package com.qianqian.xlistview.bean;import android.app.Application;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;import com.qianqian.xlistview.R;public class Myapction extends Application{ @Override public void onCreate() { //初始化一个默认图片的配置 DisplayImageOptions options=new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) //渐显 .displayer(new FadeInBitmapDisplayer(3000)).cacheOnDisk(true) .cacheInMemory(true) .build(); ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this) .threadPoolSize(4) .defaultDisplayImageOptions(options) .build(); //初始化 ImageLoader.getInstance().init(config); super.onCreate(); }}//xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/iv" android:orientation="vertical" > <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:text="标题" /> <TextView android:id="@+id/tv_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="2" android:text="描述" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:singleLine="true" android:text="时间" /> </LinearLayout> <ImageView android:id="@+id/iv" android:layout_width="80dp" android:layout_height="80dp" android:layout_alignParentLeft="true" /></RelativeLayout>
阅读全文
0 0
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- 上拉刷新--下拉加载XListView
- XListView上拉加载下拉刷新
- xlistview上拉刷新、下拉加载
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- Xlistview上拉加载下拉刷新
- xlistview上拉刷新,下拉加载
- 上拉刷新下拉加载xlistview-------string
- 上拉刷新下拉加载xlistview--------activity_main
- XlistView的上拉刷新下拉加载
- HDU 2017 多校联合训练赛6 1002 6097 Mindis 反演变换 计算几何
- 杭电acm1799 时间复杂度 杨辉三角。。。
- C语言学习之二维数组的传参
- Spring中加载xml配置文件的六种方式
- 强化学习——A3C,GA3C
- xlistview上拉刷新,下拉加载
- Blood groups
- 在O(1)时间复杂度删除链表节点
- charles抓包
- 全排列问题与n皇后问题
- 创建单链表并赋值,要求遍历能输出1~9
- Spring4 bean 关系
- Sqoop1 安装及Hive/Hbase数据与Mysql数据互导(九)
- nyoj 456 邮票分你一半