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