================================================Helper=============================================== private XListView listView; private String dataUrl="https://code.aliyun.com/598254259/FristProject/raw/master/bw_list.txt"; private NewsAdaper newsAdaper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); newsAdaper = new NewsAdaper(this); listView = (XListView) findViewById(R.id.view); listView.setAdapter(newsAdaper); findViewById(R.id.jiazai).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { doHttp(); } }); listView.setPullLoadEnable(true); listView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { //下拉刷新 doHttp(); } @Override public void onLoadMore() { //上拉加载 listView.stopLoadMore(); } }); } private void doHttp() { new Helper().get(dataUrl).result(new Helper.HttpListener() { @Override public void success(String data) { News bean= new Gson().fromJson(data, News.class); List<News.ListBean> list=bean.getItems(); newsAdaper.setList(list); listView.stopRefresh(); } }); } private void toast(String d){ Toast.makeText(this,d,Toast.LENGTH_SHORT).show(); }
===================================App=============================================
import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; public class App extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this); ImageLoader.getInstance().init(configuration); } }
=========================================Helper============================================
package com.bwie.day07; import android.os.Handler; import android.os.Message; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class Helper { public Helper() { } public Helper get(final String url) { new Thread() { @Override public void run() { super.run(); try { URL url1 = new URL(url); HttpURLConnection connection = (HttpURLConnection) url1.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.connect(); int i = connection.getResponseCode(); if (i == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); String data = convert2sString(is); Message message = Message.obtain(); message.obj = data; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); return this; } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); String data = (String) msg.obj; linstener.success(data); } }; private HttpListener linstener; public void result(HttpListener linstener){ this.linstener=linstener; } public interface HttpListener{ void success(String data); } private String convert2sString(InputStream is) throws IOException { ByteArrayOutputStream ia = new ByteArrayOutputStream(); int len = -1; byte[] buffer = new byte[512]; while ((len = is.read(buffer)) != -1) { ia.write(buffer, 0, len); } return new String(ia.toByteArray()); } }
=======================================适配器=================================================
package com.bwie.day07; 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.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; public class NewsAdaper extends BaseAdapter { private Context context; public NewsAdaper(Context context) { this.context = context; } private List<News.ListBean> list = new ArrayList<>(); public void setList(List<News.ListBean> list) { this.list = list; notifyDataSetChanged(); } @Override public int getViewTypeCount() { return 3; } @Override public int getItemViewType(int position) { return list.get(position).getType(); } @Override public int getCount() { return list.size(); } @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) { int type = getItemViewType(i); ViewHolder1 viewHolder1; ViewHolder2 viewHolder2; ViewHolder3 viewHolder3; switch (type) { case 0: if (view == null) { view = View.inflate(context, R.layout.lay1, null); viewHolder1=new ViewHolder1(); viewHolder1.img=(ImageView)view.findViewById(R.id.news_pic); viewHolder1.men1=(TextView) view.findViewById(R.id.news_desc); viewHolder1.men2=(TextView) view.findViewById(R.id.news_title); view.setTag(viewHolder1); }else{ viewHolder1=(ViewHolder1) view.getTag(); } News.ListBean bean= list.get(i); viewHolder1.men1.setText(bean.getTitle()); viewHolder1.men1.setText(bean.getDesc()); ImageLoader.getInstance().displayImage(bean.getImage(),viewHolder1.img); break; case 1: if (view == null) { view = View.inflate(context, R.layout.lay3, null); viewHolder2=new ViewHolder2(); viewHolder2.img1=(ImageView)view.findViewById(R.id.img1); viewHolder2.img2=(ImageView) view.findViewById(R.id.img2); viewHolder2.img3=(ImageView) view.findViewById(R.id.img3); view.setTag(viewHolder2); }else{ viewHolder2=(ViewHolder2) view.getTag(); } News.ListBean bean1=list.get(i); List<News.ListBean.ImageBean> imgage=bean1.getImages(); ImageLoader.getInstance().displayImage(imgage.get(0).getPic(),viewHolder2.img1); ImageLoader.getInstance().displayImage(imgage.get(1).getPic(),viewHolder2.img2); ImageLoader.getInstance().displayImage(imgage.get(2).getPic(),viewHolder2.img3); break; case 2: if (view == null) { view = View.inflate(context, R.layout.lay2, null); viewHolder3=new ViewHolder3(); viewHolder3.tv=(TextView)view.findViewById(R.id.gong); view.setTag(viewHolder3); }else{ viewHolder3=(ViewHolder3) view.getTag(); } News.ListBean bean2=list.get(i); viewHolder3.tv.setText(bean2.getTitle()); break; } return view; } class ViewHolder1 { ImageView img; TextView men1, men2; } class ViewHolder2 { ImageView img1, img2, img3; } class ViewHolder3 { ; TextView tv; } }
=====================================News=================================================
package com.bwie.day07; import java.util.List; public class News { private List<ListBean> items; public List<ListBean> getItems() { return items; } public void setItems(List<ListBean> items) { this.items = items; } public class ListBean{ private int type; private String title; private String desc; private String image; private List<ImageBean> images; public int getType() { return type; } public void setType(int type) { this.type = type; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public List<ImageBean> getImages() { return images; } public void setImages(List<ImageBean> images) { this.images = images; } public class ImageBean{ private String pic; public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic; } } } }
============================布局========================================================
<Button//主页面 android:id="@+id/jiazai" android:layout_width="match_parent" android:layout_height="50dp" android:text="加载" /> <com.example.xlistviewlib.XListView android:id="@+id/view" android:layout_width="match_parent" android:layout_height="match_parent" />
======lay1
<ImageView android:id="@+id/news_pic" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginRight="10dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/news_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/news_pic" android:ellipsize="end" android:lines="1" android:text="我是Title" /> <TextView android:id="@+id/news_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/news_title" android:layout_toRightOf="@+id/news_pic" android:ellipsize="end" android:lines="3" android:text="我是Desc" />
====lay2
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是公告" android:id="@+id/gong" />
====lay3
<ImageView android:id="@+id/img1" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" /> <ImageView android:id="@+id/img2" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" /> <ImageView android:id="@+id/img3" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" android:src="@mipmap/ic_launcher" />