XListView的使用方法
来源:互联网 发布:淘宝上买代写靠谱吗 编辑:程序博客网 时间:2024/04/20 05:30
1、首先下载第三方xlistview的数据包
2、复制src下view包中的三个java文件
3、复制res包下的三个xml文件放入layout中
4、复制图片和values中string.xml文件中的数据到相应的文件夹下
5、在布局文件直接书写(另一种listview)
<view.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent"></view.XListView>
6、在onCreat()方法书写
package com.example.xlistview;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.google.gson.Gson;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import MyBean.Bean;import Utils.MyTask;import adapter.MyAdapter;import view.XListView;import static android.R.id.list;public class MainActivity extends AppCompatActivity { private int pageIndex=1; private XListView xlv; ArrayList<Bean.DataBean> list = new ArrayList<>(); private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { xlv.stopLoadMore(); } else { Date date = new Date(System.currentTimeMillis()); //yyyy-MM-dd HH:mm:ss SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); String updateTime = simpleDateFormat.format(date); //设置刷新时间 xlv.setRefreshTime(updateTime); xlv.stopRefresh();//关闭头部视图 } } }; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局 setContentView(R.layout.activity_main); //找控件 xlv = (XListView) findViewById(R.id.xlv); //支持下拉刷新 xlv.setPullRefreshEnable(true); //支持上拉加载更多 xlv.setPullLoadEnable(true); //设置监听事件 xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() {//刷新回调的接口 //请求第一页的数据 MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); Bean bean = gson.fromJson(jsonstr, Bean.class); //添加到大集合对象中 list.addAll(0,bean.getData()); //设置适配器 setAdapter(); //延迟关闭头部视图 handler.sendEmptyMessageDelayed(2,500); } }); myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1"); } @Override public void onLoadMore() {//加载更多回调的接口方法 pageIndex++; MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); Bean bean = gson.fromJson(jsonstr, Bean.class); //将最新请求的数据添加到大集合对象中, list.addAll(bean.getData()); //设置适配器 setAdapter(); //关闭底部视图 handler.sendEmptyMessageDelayed(1,500); } }); myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="+pageIndex); } }); //初使化 requestNetData(); } private void requestNetData() { MyTask myTask=new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson=new Gson(); Bean bean = gson.fromJson(jsonstr, Bean.class); //添加到大集合对象中 list.addAll(bean.getData()); //设置适配器 setAdapter(); } }); myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=5"); } public void setAdapter(){ if(myAdapter==null){ myAdapter = new MyAdapter(this, list); xlv.setAdapter(myAdapter); }else{ myAdapter.notifyDataSetChanged(); } }}
adapter(参考格式)
package com.example.day2017_10_21demo.Adapter;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.day2017_10_21demo.Bean.Bean;import com.example.day2017_10_21demo.ImageLoder.MyApp;import com.example.day2017_10_21demo.R;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by 墨鸦 on 2017/10/21. */public class Adapter extends BaseAdapter{ private Context context; private List<Bean.DataBean> list; public Adapter(Context context, List<Bean.DataBean> 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) { ViewHodler hodler; if (convertView==null){ hodler=new ViewHodler(); convertView=View.inflate(context, R.layout.layout_xlistview,null); hodler.imageView= (ImageView) convertView.findViewById(R.id.img); hodler.textView1= (TextView) convertView.findViewById(R.id.text01); hodler.textView2= (TextView) convertView.findViewById(R.id.text02); convertView.setTag(hodler); }else { hodler= (ViewHodler) convertView.getTag(); } //加载图片 ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),hodler.imageView, MyApp.getDefaultDisplayOption()); hodler.textView1.setText(list.get(position).getNews_title()); hodler.textView2.setText(list.get(position).getNews_summary()); return convertView; } class ViewHodler{ ImageView imageView; TextView textView1; TextView textView2; }}
阅读全文
0 0
- XlistView的使用方法
- XListView的使用方法
- XListView的使用方法
- XListView的使用方法
- XlistView上下加载的使用方法
- XlistView上下加载的使用方法
- Xlistview使用方法
- Xlistview使用方法
- XListView简单使用方法
- Android第三方框架之xListView的使用方法
- Android第三方框架之xListView的使用方法
- 安卓框架——XListView(上拉加载,下拉刷新)的使用方法
- 安卓框架——XListView(上拉加载,下拉刷新)的使用方法
- xlistview的使用
- xListView的使用步骤
- Xlistview的滚动控制
- xlistview用到的方法
- xlistview的写法
- Bananer与瀑布流
- 策略模式学习和理解
- Java
- hadoop入门介绍
- .bat文件中call命令的用法
- XListView的使用方法
- Java如何进行Base64的编码(Encode)与解码(Decode)
- HAPPY训练赛——Complete the Word
- java语言递归实现快速排序
- Python基础-函数
- HDU 6023 Automatic Judge (模拟)
- 解决js处理Long类型丢失精度的问题
- 【51nod】1022 石子归并V2 区间DP
- Ubuntu 14.04下gedit出现“Gedit warning: GtkScrolledWindow..."问题解决方法