xlistview
来源:互联网 发布:unity3d 寻路插件贴吧 编辑:程序博客网 时间:2024/06/06 08:36
//下载源码网址
https://github.com/Maxwin-z/XListView-Android
Main类
package com.example.asus.xlistview;import android.os.AsyncTask;import android.os.Handler;import android.os.Message;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.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import Bean.News;import Bean.Shiti;import view.XListView;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private myLv ad; private XListView lv; private int start=0; private String url="http://v.juhe.cn/toutiao/index?type=top&&key=22a108244dbb8d1f49967cd74a0c144d"; private List<Shiti> list=new ArrayList<>(); private List<Shiti> list1=new ArrayList<>(); private Handler handler=new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); new myAsynctask().execute(url); } private void initview() { lv = (XListView) findViewById(R.id.lv); lv.setXListViewListener(this); lv.setPullLoadEnable(true); list = new ArrayList<>(); } @Override public void onRefresh() { handler .postDelayed(new Runnable() { @Override public void run() { start+=5; list.clear(); list = inititm(list1); ad=new myLv(); lv.setAdapter(ad); onload(); } }, 2000); } private void onload() { lv.stopRefresh(); lv.stopLoadMore(); lv.setRefreshTime("刚刚"); }; @Override public void onLoadMore() { handler .postDelayed(new Runnable() { @Override public void run() { list = inititm(list1); ad.notifyDataSetChanged(); onload(); } }, 2000); } class myAsynctask extends AsyncTask<String,Void,String>{ @Override protected void onPostExecute(String s) { super.onPostExecute(s); System.out.println("s==="+s); Gson gson=new Gson(); News news = gson.fromJson(s, News.class); News.A result = news.result; List<News.B> data = result.data; for (int i = 0; i <data.size() ; i++) { News.B b = data.get(i); Shiti shiti=new Shiti(); shiti.title=b.title; shiti.url=b.url; shiti.thumbnail_pic_s=b.thumbnail_pic_s; list1.add(shiti); } if(list1!=null){ list = inititm(list1); ad = new myLv(); lv.setAdapter(ad); lv.stopRefresh(); lv.stopLoadMore(); } } @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.connect(); if(connection.getResponseCode()==200){ StringBuffer sb=new StringBuffer(); InputStream inputStream = connection.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(inputStream)); String len=null; while ((len=br.readLine())!=null){ sb.append(len); } return sb.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; } } private List<Shiti> inititm(List<Shiti> list1) { if(start>=list1.size()){ start=0; } for (int i = start; i <start+10; i++) { list.add(list1.get(i)); } return list; } class myLv extends BaseAdapter{ private final int a = 0;//多布局加载第一种布局 private final int b = 1;//多布局加载第二种布局 private final int num = 2;//一共两种布 @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 int getViewTypeCount() { return num; } @Override public int getItemViewType(int position) { if(position%2==0){ return a; }else { return b; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); viewholder1 holder1=null; viewholder2 holder2=null; if(view==null){ switch (type){ case a: view=View.inflate(MainActivity.this,R.layout.list_yi,null); holder1=new viewholder1(); holder1.tv_title1=view.findViewById(R.id.tv_title1); holder1.img_tu1=view.findViewById(R.id.img_tu1); view.setTag(holder1); break; case b: view=View.inflate(MainActivity.this,R.layout.list_er,null); holder2=new viewholder2(); holder2.tv_title2=view.findViewById(R.id.tv_title2); holder2.img_tu2=view.findViewById(R.id.img_tu2); view.setTag(holder2); break; } }else{ switch (type){ case a: holder1= (viewholder1) view.getTag(); break; case b: holder2= (viewholder2) view.getTag(); break; } } switch (type){ case a: holder1.tv_title1.setText(list.get(i).title); ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s,holder1.img_tu1); break; case b: holder2.tv_title2.setText(list.get(i).title); ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s,holder2.img_tu2); break; } return view; } class viewholder1 { public TextView tv_title1; public ImageView img_tu1; } class viewholder2 { public TextView tv_title2; public ImageView img_tu2; } }}初始化imgagelode
<application android:name=".Applica"
package com.example.asus.xlistview;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.RoundedBitmapDisplayer;/** * Created by asus on 2017/8/15. */public class Applica extends Application{ @Override public void onCreate() { super.onCreate(); initimageloder(); } private void initimageloder() { DisplayImageOptions options=new DisplayImageOptions.Builder(). displayer(new RoundedBitmapDisplayer(360)).//圆角
.cacheInMemory(true)//允许下载的图片缓存到SD卡中 .cacheOnDisk(true)
build(); ImageLoaderConfiguration cofig=new ImageLoaderConfiguration.Builder(this) .defaultDisplayImageOptions(options) .build(); ImageLoader.getInstance().init(cofig); }}
阅读全文
0 0
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- XListView
- xlistview
- xListview
- XListView
- XListView
- xlistview
- xlistview
- 代理与反向代理
- 关于project server 2016 定制开发
- 1056. 组合数的和(15)
- skynet集群及通信
- Django学习(4):Models
- xlistview
- 第二章 正则表达式位置匹配攻略
- Qt停靠窗口QDockWidget应用
- html回顾及vue.js在html中使用(二)
- 计算ListView的高度终极版,考虑到多行textview的情况
- (并查集)How Many Answers Are Wrong--HDOJ
- LeetCode 447. Number of Boomerangs
- #1071
- 微信小程序开发 ---5