1.MaActivity.class
<span style="font-size:18px;">import java.io.IOException; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.updateversion.bean.InfoList; import com.example.updateversion.bean.ZongBean; import com.example.updateversion.utils.Utils; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.nostra13.universalimageloader.core.ImageLoader; public class MainActivity extends Activity { private final String URL = "http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&qtime=20160411091603&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id="; private PullToRefreshListView lv; private int x = 1; private boolean flag=true; private BaseAdapter base; Handler mHandler = new Handler() { @SuppressWarnings({ "rawtypes", "unchecked" }) public void handleMessage(android.os.Message msg) { switch (msg.what) { case 1: // 解析的数据 String str = (String) msg.obj; Gson gson = new Gson(); ZongBean zongBean = gson.fromJson(str, ZongBean.class); final ImageLoader imageLoder = Utils.getImage(MainActivity.this); final ArrayList<InfoList> list = zongBean.getResult().getRows(); Toast.makeText(MainActivity.this, list.size()+"", Toast.LENGTH_SHORT).show(); if(flag){ base=new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = View.inflate(MainActivity.this, R.layout.lv_item, null); ImageView imaPic = (ImageView) convertView.findViewById(R.id.ima_item); TextView tvMsg = (TextView) convertView.findViewById(R.id.tv_msg); TextView tvName = (TextView) convertView.findViewById(R.id.tv_name); TextView tvAddre = (TextView) convertView.findViewById(R.id.tv_addre); imageLoder.displayImage(list.get(position).getInfo().getDefault_image(), imaPic); tvMsg.setText(list.get(position).getInfo().getRegion_title()); tvAddre.setText(list.get(position).getInfo().getPrice()); tvName.setText(list.get(position).getInfo().getLoupan_name()); return convertView; } @Override public long getItemId(int position) { return position; } @Override public Object getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }; lv.setAdapter(base); //flag=false; } lv.setOnRefreshListener(new OnRefreshListener2() { @Override public void onPullDownToRefresh(PullToRefreshBase refreshView) { x = x + 1; new Thread() { public void run() { try { getData(x); runOnUiThread(new Runnable() { @Override public void run() { lv.onRefreshComplete(); base.notifyDataSetChanged(); } }); } catch (IOException e) { e.printStackTrace(); } } }.start(); } @Override public void onPullUpToRefresh(PullToRefreshBase refreshView) { if(x>1){ x = x - 1; new Thread() { public void run() { try { getData(x); runOnUiThread(new Runnable() { @Override public void run() { lv.onRefreshComplete(); base.notifyDataSetChanged(); } }); } catch (IOException e) { e.printStackTrace(); } } }.start(); } else{ Toast.makeText(MainActivity.this, "最后一条", Toast.LENGTH_SHORT).show(); lv.onRefreshComplete(); } } }); break; default: break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 找寻ID init(); //开始初始化lv // 开始请求数据 new Thread() { public void run() { try { getData(x); } catch (IOException e) { e.printStackTrace(); } } }.start(); } private void init() { lv = (PullToRefreshListView) findViewById(R.id.lv); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } private void getData(int x) throws IOException { String dataFromUrl = Utils.getDataFromUrl(URL + x); Message msg = mHandler.obtainMessage(); msg.obj = dataFromUrl; msg.what = 1; mHandler.sendMessage(msg); }; } </span>
<span style="font-size:18px;">import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.content.Context; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * @author wj * @date 2016-7-28 */ public class Utils { /** * @param url * @return 工具类 * @throws IOException */ public static String getDataFromUrl(String url) throws IOException { URL urlHttp = new URL(url); HttpURLConnection http = (HttpURLConnection) urlHttp.openConnection(); http.setConnectTimeout(5000); http.setReadTimeout(5000); http.connect(); byte[] by = new byte[1024]; int len = -1; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int code = http.getResponseCode(); InputStream stream = http.getInputStream(); if (code == 200) { while ((len = stream.read(by)) != -1) { // 开始读取 bos.write(by, 0, len); } return bos.toString("utf-8"); } return null; } /** * @param context * @return 默认的imageLoder */ public static ImageLoader getImage(Context context) { ImageLoader image = ImageLoader.getInstance(); image.init(ImageLoaderConfiguration.createDefault(context)); return image; } } </span>
3.InfoBean实体类
<span style="font-size:18px;">import java.io.Serializable; public class InfoBean implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String address; private String default_image; private String kaipan_new_date; private String loupan_name; private String new_price_value; private String price; private String region_title; private String tags; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getDefault_image() { return default_image; } public void setDefault_image(String default_image) { this.default_image = default_image; } public String getKaipan_new_date() { return kaipan_new_date; } public void setKaipan_new_date(String kaipan_new_date) { this.kaipan_new_date = kaipan_new_date; } public String getLoupan_name() { return loupan_name; } public void setLoupan_name(String loupan_name) { this.loupan_name = loupan_name; } public String getNew_price_value() { return new_price_value; } public void setNew_price_value(String new_price_value) { this.new_price_value = new_price_value; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getRegion_title() { return region_title; } public void setRegion_title(String region_title) { this.region_title = region_title; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; } public static long getSerialversionuid() { return serialVersionUID; } public InfoBean(String address, String default_image, String kaipan_new_date, String loupan_name, String new_price_value, String price, String region_title, String tags) { super(); this.address = address; this.default_image = default_image; this.kaipan_new_date = kaipan_new_date; this.loupan_name = loupan_name; this.new_price_value = new_price_value; this.price = price; this.region_title = region_title; this.tags = tags; } public InfoBean() { super(); } } </span>
4.实体类InfoList
<span style="font-size:18px;">import java.io.Serializable; public class InfoList implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private InfoBean info; public InfoBean getInfo() { return info; } public void setInfo(InfoBean info) { this.info = info; } public InfoList(InfoBean info) { super(); this.info = info; } public InfoList() { super(); } } </span>
5.RowList实体类
<span style="font-size:18px;">import java.io.Serializable; import java.util.ArrayList; public class RowList implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private ArrayList<InfoList> rows; public ArrayList<InfoList> getRows() { return rows; } public void setRows(ArrayList<InfoList> rows) { this.rows = rows; } public RowList(ArrayList<InfoList> rows) { super(); this.rows = rows; } public RowList() { super(); } } </span>
6.实体类ZongBean
<span style="font-size:18px;">import java.io.Serializable; public class ZongBean implements Serializable { /** * */ private static final long serialVersionUID = 1L; private RowList result; public RowList getResult() { return result; } public void setResult(RowList result) { this.result = result; } public ZongBean() { super(); } public ZongBean(RowList result) { super(); this.result = result; } } </span>
<span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/lv" xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="fill_parent" android:layout_width="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="1dp" android:horizontalSpacing="1dp" android:columnWidth="100dp" android:stretchMode="columnWidth" android:gravity="fill" ptr:ptrMode="both" > </com.handmark.pulltorefresh.library.PullToRefreshListView> </RelativeLayout></span>
8.lv_item.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <ImageView android:id="@+id/ima_item" android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/ic_launcher" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:text="张三" android:textSize="18sp" /> <TextView android:id="@+id/tv_addre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:text="张三" android:textSize="18sp" /> <TextView android:id="@+id/tv_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="张三" android:textSize="18sp" /> </LinearLayout> </LinearLayout></span>