zoukankan      html  css  js  c++  java
  • 上拉,下拉更多

    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;
        
    }
    }
  • 相关阅读:
    基于bootstrap实现收缩导航条
    js判断打开网站页面是PC端还是手机端
    vs2015调试sqlserver 存储过程
    C#计算当前日是第几周
    C#计算一年有多少周
    tcpdump命令的使用
    keepalived配置
    正则匹配中文
    git merge 和 git rebase详解
    systemd和sysv服务管理和配置
  • 原文地址:https://www.cnblogs.com/123p/p/5454870.html
Copyright © 2011-2022 走看看