上拉,下拉更多

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;
    
}
}

 

posted @ 2016-05-03 14:42  151  阅读(153)  评论(0编辑  收藏  举报