源码备份 listview

package com.wyj.tabmenu;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.State;
import com.handmark.pulltorefresh.library.extras.SoundPullEventListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;

import com.wyj.app.AsynTaskHelper;
import com.wyj.app.AsynTaskHelper.OnDataDownloadListener;

import com.wyj.app.JsonHelper;
import com.wyj.app.JsonToListHelper;
import com.wyj.http.HttpClientHelper;
import com.wyj.http.HttpURLConnHelper;
import com.wyj.http.WebApiUrl;



import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;

import android.os.AsyncTask;
import android.os.Bundle;

import android.support.v4.view.ViewPager.LayoutParams;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.TabHost.TabSpec;
import android.widget.Toast;

public class Find extends Activity 
{
    
        private static final String[] countriesStr ={"全部道场","五台山清凉寺","九华山净土寺","普陀山法门寺"};
        private Spinner mySpinner;
        private ArrayAdapter<String> adapter;
        private int tid=0; //道场id的标识
        View views;
        List<Map<String, Object>> templelist_list;
        List<Map<String, Object>> order_list;
        
        private View moreView;
        private ListView mListView;
        private List<Map<String, Object>> Listdata; // 加载到适配器中的数据源
        private BaseListAdapter mAdapter;
        private int page=1;
        private int pagesize=10;
        private boolean isBottom = false;// 判断是否滚动到数据最后一条
        private int lastItem;
        private int count;
        private PullToRefreshListView mPullRefreshListView;
        
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        
        Listdata =  new ArrayList<Map<String,Object>>();
        View contenView  = LayoutInflater.from(this.getParent()).inflate(R.layout.tab_find, null); 
        
        setContentView(contenView);
        select_daochang_list();
        select_order_list() ;
       
       //mListView.setAdapter(new BaseListAdapter(this));
    }


    private void select_daochang_list() {       
        // TODO Auto-generated method stub
        mySpinner = (Spinner) findViewById(R.id.daochang_select);
        adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,countriesStr);
        mySpinner.setAdapter(adapter);
//        String result_templte = HttpClientHelper.loadTextFromURL(WebApiUrl.GET_TEMPLELIST);
//        String[] result_templte_key ={ "code", "msg", "templelist" };
//        Map<String, Object> return_status = JsonHelper.jsonStringToMap( result_templte, result_templte_key,null);
//        
//        
//        if(return_status.get("code").equals("succeed")){
//            templelist_list = JsonToListHelper.gettemplelist_json( result_templte);
//        } 
        
        //Log.i("bbbb", "count="+templelist_list.toString());         
    }
    
    private void select_order_list() {       
        // TODO Auto-generated method stub
        mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.find_list);
        
        mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),
                        DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);

                // Update the LastUpdatedLabel
                refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
                // Do work to refresh the list here.
                //new GetDataTask().execute(WebApiUrl.GET_ORDERLIST+"?p=5&&pz=1");
                pull_listAdapter(null, WebApiUrl.GET_ORDERLIST+"?p=5&&pz=1",getParent());
            
            }
        });
        
        
        mListView = mPullRefreshListView.getRefreshableView();
        
//        mPullRefreshListView.setMode(Mode.BOTH);  
//        mPullRefreshListView.getLoadingLayoutProxy(false, true).setPullLabel("加载中");  
//        mPullRefreshListView.getLoadingLayoutProxy(false, true).setRefreshingLabel("正在加载");  
//        mPullRefreshListView.getLoadingLayoutProxy(false, true).setReleaseLabel("上拉加载");  
        
        //mListView = (ListView) findViewById(R.id.find_list);
        moreView = getLayoutInflater().inflate(R.layout.load, null);
        //mListView.addFooterView(moreView);
        
        listAdapter(null, WebApiUrl.GET_ORDERLIST+"?p="+page+"&&pz="+pagesize,getParent());
        mAdapter=new BaseListAdapter(getBaseContext(),Listdata);
        mListView.setAdapter(mAdapter);
        
        
        mPullRefreshListView.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {

            @Override
            public void onLastItemVisible() {
                //Log.i("cccc", "lastItem=---------滚动了"); 
                 if(!isBottom){    
                     //moreView.setVisibility(View.VISIBLE);
                         page++;
                         listAdapter(null, WebApiUrl.GET_ORDERLIST+"?p="+page+"&&pz="+pagesize,getParent()); 
                     }else{
                         Toast.makeText(getParent(), "没有了", Toast.LENGTH_SHORT).show();
                     }
            }
        });
        // 给ListView对象设置滚动监听器,以此来判断是否已经滚动到最后一条,从而决定是否加载新数据
//        mPullRefreshListView.setOnScrollListener(new OnScrollListener() {
//        @Override
//        public void onScrollStateChanged(AbsListView view, int scrollState) {
//            
////            Log.i("cccc", "lastItem=---------滚动了"+lastItem); 
//
//             if(lastItem == count  && scrollState ==  this.SCROLL_STATE_IDLE){ 
//                 if(!isBottom){    
//                     moreView.setVisibility(view.VISIBLE);
//                     page++;
//                     
//                     listAdapter(null, WebApiUrl.GET_ORDERLIST+"?p="+page+"&&pz="+pagesize,getParent()); 
//                 }else{
//                     Toast.makeText(getParent(), "没有了", Toast.LENGTH_SHORT).show();
//                 }
//            }    
//        }
//        public void onScroll(AbsListView view, int firstVisibleItem,
//        int visibleItemCount, int totalItemCount) {
//            // 判断是否已经滚动到了最后一条,从而决定是否提示加载新数据
//            lastItem = firstVisibleItem + visibleItemCount ;  
//         //   isBottom = (firstVisibleItem + visibleItemCount == totalItemCount);
//        }
//        });
                
    }
    
  
    private void listAdapter(Map<String, Object> map, String url, final Context context) {
        AsynTaskHelper  asyntask = new AsynTaskHelper();
        asyntask.dataDownload(url, map, new OnDataDownloadListener() {
        

            public void onDataDownload(String result) {
                if (result != null) {
                //    Listdata.clear();
                List<Map<String, Object>> items;
                items = JsonToListHelper.orderlist_json(result);
                Listdata.addAll(items);
                count = Listdata.size();
                mAdapter.notifyDataSetChanged();
                //moreView.setVisibility(View.GONE); 
                
                if(items.toString().equals("[]")){
                    isBottom=true;
                }
                    
                }else {
                    Toast.makeText(context, "网络异常", Toast.LENGTH_SHORT).show();
                }
                 
            }
        }, context,"GET");        
    }
    
    //上拉更新操作-------
    private void pull_listAdapter(Map<String, Object> map, String url, final Context context) {
        AsynTaskHelper  asyntask = new AsynTaskHelper();
        asyntask.pull_dataDownload(url, map, new OnDataDownloadListener() {
        

            public void onDataDownload(String result) {
                if (result != null) {
                //    Listdata.clear();
                List<Map<String, Object>> items;
                items = JsonToListHelper.orderlist_json(result);
                if(items.toString().equals("[]")){
                    Toast.makeText(context, "没有最新的啦", Toast.LENGTH_SHORT).show();
                }else{
                    Listdata.addAll(0,items);
                    mAdapter.notifyDataSetChanged();
                    mPullRefreshListView.onRefreshComplete();
                }
                    
                }else {
                    Toast.makeText(context, "网络异常", Toast.LENGTH_SHORT).show();
                }
                 
            }
        }, context,"GET");
        
    }
        
    @Override  
    public void onBackPressed() {     
        
        new AlertDialog.Builder(Find.this.getParent()).setTitle("确定要退出么?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
                System.exit(0);
            }
        }).setNegativeButton("不确定", new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                
            }
        }).create().show();
    }  
    
    
    private class BaseListAdapter extends BaseAdapter implements OnClickListener {

        private Context mContext;
        private LayoutInflater inflater;
        private List<Map<String, Object>> mData;
        
         public BaseListAdapter(Context mContext,List<Map<String, Object>> list) {
                this.mContext = mContext;
                inflater = LayoutInflater.from(mContext);
                this.mData = list;
            }
        
        public void addFirst(List<Map<String, Object>> items) {
            // TODO Auto-generated method stub
            
        }

        public void setValues(List<HashMap<String, Object>> listdata) {
            // TODO Auto-generated method stub
        }

        @Override
        public int getCount() {
            return this.mData.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder = null;
            if(convertView == null) {
                viewHolder = new ViewHolder();
                convertView = inflater.inflate(R.layout.items, null);
                
                viewHolder.img = (ImageView) convertView.findViewById(R.id.img);
                viewHolder.title = (TextView) convertView.findViewById(R.id.title);
                viewHolder.username = (TextView) convertView.findViewById(R.id.username);
                viewHolder.address = (TextView) convertView.findViewById(R.id.address);
                viewHolder.jiachi = (TextView) convertView.findViewById(R.id.jiachi);

                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag(); 
            }
            
           
            viewHolder.img.setBackgroundResource(R.drawable.foot_07);
            viewHolder.title.setText((CharSequence) this.mData.get(position).get("wishtext"));
            viewHolder.username.setText((CharSequence) this.mData.get(position).get("truename"));
            viewHolder.address.setText((CharSequence) this.mData.get(position).get("templename"));
            viewHolder.jiachi.setText((CharSequence) this.mData.get(position).get("wishname"));
            
            viewHolder.title.setOnClickListener(this);
            
            return convertView;
        }
        
        class ViewHolder {
             ImageView img;
             TextView title;
             TextView username;
             TextView address;
             TextView jiachi;
    
        }

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            
            //要跳转的Activity  
            Intent intent = new Intent(Find.this, Find_item.class);  
            Bundle bu=new Bundle(); // 这个组件 存值
            bu.putString("username", v.toString());
            intent.putExtras(bu);  //放到 intent 里面  然后 传出去
            // 把Activity转换成一个Window,然后转换成View  
            Window w = FindGroupTab.group.getLocalActivityManager()  
                    .startActivity("Find_item",intent);  
            View view = w.getDecorView();  
            //设置要跳转的Activity显示为本ActivityGroup的内容  
            FindGroupTab.group.setContentView(view); 
        }

       
   
    }
    

    
}

 

posted @ 2014-12-25 15:34  清风吹云  阅读(227)  评论(0编辑  收藏  举报