Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
2017-12-21 11:46
579 查看
首先导入依赖:gson、imageLoader
在布局文件中:
子布局。。。。。。。。
然后在activity中处理一些数据。。。。
/**
Oncreat()方法中的操作
*/
自定义一个MyTask类
自定义一个Adapter进行展示数据
compile ‘com.google.code.gson:gson:2.2.4’ compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
在布局文件中:
<com.bwie.xlistviewlibrary.View.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" />
子布局。。。。。。。。
然后在activity中处理一些数据。。。。
/**
Oncreat()方法中的操作
*/
private int type = 1; private int pages = 1; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = (XListView) findViewById(R.id.xlv); //加载更多 xlv.setPullLoadEnable(true); //下拉刷新 xlv.setPullRefreshEnable(true); //给xlistview设置监听事件 xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { type = 1; pages = 1; new MyTask().execute(path); } @Override public void onLoadMore() { type = 2; pages++; new MyTask().execute("http://api.tianapi.com/mobile/?key=d28c274e60a1a76155e97dc199dbfacc&num=10&page="+pages); } }); new MyTask().execute(path); }
自定义一个MyTask类
class MyTask extends AsyncTask<String,String,String> { private List<Bean.NewslistBean> newslist; @Override protected String doInBackground(String... strings) { String path = strings[0]; try { /* 得到当前需要的path */ URL url = new URL(path); /** * 得到网络请求 */ HttpURLConnection connection = (HttpURLConnection) url.openConnection(); /** * 设置延时时间 */ connection.setConnectTimeout(3000); //得到请求方式 connection.setRequestMethod("GET"); //得到请求码 int responseCode = connection.getResponseCode(); /* 判断是否请求成功 */ if (responseCode == 200) { int len; byt 4000 e[] b = new byte[1024 * 20]; InputStream inputStream = connection.getInputStream(); outputStream = new ByteArrayOutputStream(); while ((len = inputStream.read(b)) != -1) { outputStream.write(b,0,len); } } return outputStream.toString();//返回数据信息 } catch (Exception e) { e.printStackTrace(); } return null;//返回空 } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); /** * 转换json串 */ Bean json = gson.fromJson(s, Bean.class); newslist = json.getNewslist(); if(type==1){ list.clear(); list.addAll(newslist); MyAdapter adapter1 = new MyAdapter(MainActivity.this,newslist); xlv.setAdapter(adapter1); new Handler().postDelayed(new Runnable() { @Override public void run() { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat format = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss"); String s = format.format(date); xlv.setRefreshTime(s); xlv.stopRefresh(); } },1000); }else if(type==2){ list.addAll(newslist); MyAdapter adapter1 = new MyAdapter(MainActivity.this,newslist); xlv.setAdapter(adapter1); new Handler().postDelayed(new Runnable() { @Override public void run() { xlv.stopLoadMore(); } },1000); } } }
自定义一个Adapter进行展示数据
public class MyAdapter extends BaseAdapter { Context context; List<Bean.NewslistBean> list; public MyAdapter(Context context,List<Bean.NewslistBean> list){ this.context = context; this.list=list; } @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; } /** * 优化,展示数据 * 无viewHolder 详情看博客的详细细节 */ @Override public View getView(int i, View view, ViewGroup viewGroup) { if(i%2==0){ if(view==null){ view = View.inflate(context, R.layout.main_item,null); } ImageView iv = view.findViewById(R.id.iv); TextView tv = view.findViewById(R.id.tv); String s = list.get(i).getPicUrl(); ImageLoader.getInstance().displayImage(s,iv); tv.setText(list.get(i).getTitle()); return view; }else{ if(view==null){ view = View.inflate(context, R.layout.main_item1,null); } ImageView iv1 = view.findViewById(R.id.iv1); TextView tv1 = view.findViewById(R.id.tv1); String s1 = list.get(i).getPicUrl(); ImageLoader.getInstance().displayImage(s1,iv1); tv1.setText(list.get(i).getTitle()); return view; } } }
相关文章推荐
- oracle中获取系统当前时间,启动时间以及运行时间
- QT获取系统时间以及设置日期格式
- php时间和日期函数总结以及获取浏览器版本及系统版本
- XListView上拉加载 AND 下拉刷新(带有更新时间)
- QT获取系统时间,以及设置日期格式
- Android获取系统时间以及网络时间
- Android获取系统时间以及网络时间
- JavaScript获取系统时间以及通过ajax获取服务器时间
- 遍历系统中加载的驱动程序以及通过设备对象指针获取设备对象名称
- QT修改、获取系统时间,以及设置日…
- windows以及linux获取系统时间
- 汇编结构体的使用获取系统时间以及宏的定义和使用
- 用RecyclerView实现新闻列表页,包括头部的图片轮播,两种Item显示方式,下拉刷新和上拉加载以及限制列表的加载条目数
- 【转】QT获取系统时间,以及设置日期格式
- iOS 获取系统时间以及时间与日期格式互相转换
- 获取系统时间以及将时间戳转换成字符串,将字符串转换成时间戳
- 获取系统时间以及时间显示的格式
- RecyclerView展示固定数据、上拉加载更多、下拉刷新、点击事件、长按点击事件、删除条目、刷新条目、添加条目、多条目加载
- java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换
- JAVA,jsp,oracle获取系统当前时间以及日期格式转换!