MainActivity.class:
package com.example.lianmginghui20160328; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import com.example.lianmginghui20160328.adapter.Mybase; import com.example.lianmginghui20160328.vo.Data; import com.example.lianmginghui20160328.vo.Demo; import com.example.xlistviews.XListView; import com.example.xlistviews.XListView.IXListViewListener; import com.google.gson.Gson; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; public class MainActivity extends Activity implements IXListViewListener{ private List<Demo> data=new ArrayList<Demo>(); String str; private String pathurl="http://api.expoon.com/AppNews/getNewsList/type/1/p/"; int j=0; private Mybase base; private XListView list_view; //启动handler线程 Handler han=new Handler(){ public void handleMessage(android.os.Message msg) { //根据传值不同进行不同的判断 switch (msg.what) { case 1: msg.obj=str; Gson g=new Gson(); Data d=g.fromJson(str,Data.class); data=d.getData(); base=new Mybase(data, getApplicationContext()); list_view.setAdapter(base); break; case 2: msg.obj=str; Gson g1=new Gson(); Data d1=g1.fromJson(str,Data.class); data=d1.getData(); base=new Mybase(data, getApplicationContext()); list_view.setAdapter(base); base.notifyDataSetChanged(); break; case 3: msg.obj=str; Gson g2=new Gson(); Data d2=g2.fromJson(str,Data.class); List<Demo> da=d2.getData(); data.addAll(data); base.notifyDataSetChanged(); break; default: break; } }; }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list_view=(XListView) findViewById(R.id.list_view); list_view.setPullLoadEnable(true); list_view.setPullRefreshEnable(true); list_view.setXListViewListener(this); //布置子线程 new Thread(){ public void run() { init(); } }.start(); //点击跳转 list_view.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Intent it=new Intent(MainActivity.this,HomeActivity.class); it.putExtra("title",data.get(arg2).getNews_title()); it.putExtra("image",data.get(arg2).getPic_url()); Log.i("TAG","??????????"+ data.get(arg2).getNews_title()); startActivity(it); } }); } private void init() { // TODO Auto-generated method stub HttpClient httpClient=new DefaultHttpClient(); HttpGet httpGet=new HttpGet(pathurl+j); try { HttpResponse httpResponse=httpClient.execute(httpGet); int len=httpResponse.getStatusLine().getStatusCode(); if(len==200){ HttpEntity httpEntity=httpResponse.getEntity(); str=EntityUtils.toString(httpEntity, "gbk"); han.sendMessage(han.obtainMessage(1, str)); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onRefresh() { // TODO Auto-generated method stub new Thread(){ @Override public void run() { try { j++; init(); han.sendMessage(han.obtainMessage(2, str)); } catch (Exception e) { e.printStackTrace(); } } }.start(); } @Override public void onLoadMore() { // TODO Auto-generated method stub new Thread(){ @Override public void run() { try { j--; init(); han.sendMessage(han.obtainMessage(3, str)); runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub base.notifyDataSetChanged(); } }); } catch (Exception e) { e.printStackTrace(); } } }.start(); }; }
MyApplication.class:
package com.example.lianmginghui20160328; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import android.app.Application; import android.content.Context; public class MyApplication extends Application{ public void onCreate() { Context context=this; ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(context); ImageLoader.getInstance().init(configuration); super.onCreate(); } }
Mybase.class:
package com.example.lianmginghui20160328.adapter; import java.util.List; import com.example.lianmginghui20160328.R; import com.example.lianmginghui20160328.vo.Demo; import com.nostra13.universalimageloader.core.ImageLoader; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class Mybase extends BaseAdapter{ private List<Demo> data; private Context context; public Mybase(List<Demo> data, Context context) { super(); this.data = data; this.context = context; } @Override public int getCount() { // TODO Auto-generated method stub return data.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return data.get(arg0); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Viehoder vh; if(convertView==null){ vh=new Viehoder(); convertView=LayoutInflater.from(context).inflate(R.layout.list_item,null); vh.iamge_item=(ImageView) convertView.findViewById(R.id.image_item); vh.text_item=(TextView) convertView.findViewById(R.id.text_item); convertView.setTag(vh); }else{ vh=(Viehoder) convertView.getTag(); } vh.text_item.setText(data.get(position).getNews_title()); ImageLoader.getInstance().displayImage(data.get(position).getPic_url(),vh.iamge_item); return convertView; } class Viehoder{ TextView text_item; ImageView iamge_item; } }