XListView20160328

///////////MyBaseAdapter/////////

package com.bwei.adapter;

import java.util.List;

import com.bwei.test.R;
import com.bwei.vo.Datas;
import com.lidroid.xutils.BitmapUtils;

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 MyBaseAdapter extends BaseAdapter{
    private List<Datas> list;
    private Context context;
    public MyBaseAdapter(List<Datas> list,Context context){
        this.context=context;
        this.list=list;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }

    @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
        ViewHolder vh;
        if(convertView==null){
            vh=new ViewHolder();
            convertView=LayoutInflater.from(context).inflate(R.layout.base, null);
            vh.tv=(TextView) convertView.findViewById(R.id.tv);
            vh.image=(ImageView) convertView.findViewById(R.id.image);
            convertView.setTag(vh);
        }else{
            vh=(ViewHolder) convertView.getTag();
        }
        vh.tv.setText(list.get(position).getNews_title());
        BitmapUtils bit=new BitmapUtils(context);
        bit.display(vh.image, list.get(position).getPic_url());
        return convertView;
    }
    class ViewHolder{
        ImageView image;
        TextView tv;
    }
}

 

/////////////NetWorkUtils///////////

package com.bwei.networkutils;

import java.io.IOException;

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.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;

public class NetWorkUtils {
    
    public static final String JSON_URL="http://api.expoon.com/AppNews/getNewsList/type/1p/1";
    public static final String JSON_URLs="http://api.expoon.com/AppNews/getNewsList/type/1p/";
    public static String getJsonFromWeb(String json_url) {
        String result = "";
        HttpGet get = new HttpGet(json_url);
        // 设置请求参数
        HttpParams params = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 50 * 1000);
        HttpConnectionParams.setSoTimeout(params, 50* 1000);
        // 创建httpclient对象
        HttpClient client = new DefaultHttpClient(params);
        // 执行请求,获得结果
        try {
            HttpResponse response = client.execute(get);
            if (response.getStatusLine().getStatusCode() == 200) {
                // 获得相应结果,为httpentity类型
                HttpEntity entity = response.getEntity();
                // 转换为字符串类型
                result = EntityUtils.toString(entity, "utf-8");
                
                System.out.println(result+"===================");
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }

}

 

////////////MainActivity/////

 

package com.bwei.test;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

import com.bwei.adapter.MyBaseAdapter;
import com.bwei.networkutils.NetWorkUtils;
import com.bwei.vo.Datas;
import com.bwei.vo.MyData;
import com.example.listviewshangxia.XListView;
import com.example.listviewshangxia.XListView.IXListViewListener;
import com.google.gson.Gson;

public class MainActivity extends Activity implements IXListViewListener{
    private XListView mylist;
    private List<Datas> list;
    private List<Datas> lists;
    int i=2;
    @SuppressLint("HandlerLeak")
    private Handler h=new Handler(){
        
        private MyBaseAdapter m;

        public void handleMessage(android.os.Message msg) {
            
             if(msg.what==2){
                 lists=list;
                 m = new MyBaseAdapter(lists, MainActivity.this);
                 mylist.setAdapter(m);
            }
             if(msg.what==3){
                 lists.addAll(list);
                 m.notifyDataSetChanged();
                 mylist.setAdapter(m);
             }
        };
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    private void init() {
        // TODO Auto-generated method stub
        mylist=(XListView) findViewById(R.id.mylist);
        
        mylist.setPullLoadEnable(true);
        mylist.setPullRefreshEnable(true);
        mylist.setXListViewListener(this);
        
        qingqiujson();
    }
    private void qingqiujson() {
        new Thread(){
            public void run() {
                String str=NetWorkUtils.getJsonFromWeb(NetWorkUtils.JSON_URL);
                Gson g=new Gson();
                MyData my=g.fromJson(str, MyData.class);
                list=my.getData();
            
                h.sendEmptyMessage(2);
            };
        }.start();
    }
    private void qingqiujson2() {
        new Thread(){
            public void run() {
                
                String str=NetWorkUtils.getJsonFromWeb(NetWorkUtils.JSON_URLs+i);
                Gson g=new Gson();
                MyData my=g.fromJson(str, MyData.class);
                list=my.getData();
            
                h.sendEmptyMessage(3);
            };
        }.start();
    }
    // 刷新
    @Override
    public void onRefresh() {
        // TODO Auto-generated method stub
        
        qingqiujson();
        // 设置时间;
        onLoad();
    }
    /** 停止刷新, */
    private void onLoad() {
        //停止刷新、加载
        mylist.stopRefresh();
        mylist.stopLoadMore();
        // 设置日期格式
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 获取当前系统时间
        String nowTime = df.format(new Date(System.currentTimeMillis()));
        // 释放时提示正在刷新时的当前时间
        mylist.setRefreshTime(nowTime);
    }
    // 加载更多
    @Override
    public void onLoadMore() {
        // TODO Auto-generated method stub
        qingqiujson2();
        // 设置时间;
        onLoad();
    }


}

/////////////////activity_main.xml///////

 

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity" >
    <LinearLayout
     android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#f0f0f0"
        >
    <com.example.listviewshangxia.XListView
        android:id="@+id/mylist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        >
     </com.example.listviewshangxia.XListView>
    </LinearLayout>
</LinearLayout>

 

posted @ 2016-03-30 19:43  我问你瞅啥?  阅读(128)  评论(0)    收藏  举报