package com.yizhao.activity; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import com.yizhao.action.ProductAction; import com.yizhao.adapter.DetailShopsAdapter; import com.yizhao.bean.DetailShopsBean; import com.yizhao.bean.ShopsBean; import com.yizhao.core.AsyncWorkHandler; import com.yizhao.core.Const; import com.yizhao.util.NetUtil; import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Message; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public class ShopActivity extends Activity{ private Context _context; private TextView shops_count; private ListView shops_listview; private DetailShopsAdapter shopsAdapter; private LayoutInflater inflater; private View footer; private Intent _intent; private String pid; private int curpage = 1;//当前页 private int pages = 1;//共多少页 private ArrayList<ShopsBean> fileList; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.shops); super.onCreate(savedInstanceState); _context = this; _intent = this.getIntent(); inflater = LayoutInflater.from(_context); footer = inflater.inflate(R.layout.shops_footer, null); shops_listview = (ListView)findViewById(R.id.shops_listview); shops_listview.addFooterView(footer); shops_count = (TextView)findViewById(R.id.shops_count); pid = _intent.getStringExtra("product_id"); AsyncWorkHandler asyncQueryHandler = new AsyncWorkHandler(){ @Override public Object excute(Map<String, String> map) { return ProductAction.getProductShops(map); } @Override public void handleMessage(Message msg) { if(msg.obj!=null){ DetailShopsBean bean = (DetailShopsBean)msg.obj; if("true".equals(bean.getResult())){ pages = (bean.getShops()%Const.PAGE_SIZE_INT == 0) ? bean.getShops()/Const.PAGE_SIZE_INT : bean.getShops()/Const.PAGE_SIZE_INT+1; shops_count.setText(bean.getShops()+"家"); fileList = bean.getFileList(); shopsAdapter = new DetailShopsAdapter(_context,fileList); if(shopsAdapter!=null){ shops_listview.setAdapter(shopsAdapter); } _intent.putExtra("status", true); } } removeDialog(Const.PROGRESSBAR_WAIT); } }; //异步获取信息 showDialog(Const.PROGRESSBAR_WAIT); Map<String,String> param = new HashMap<String,String>(); param.put("product_id", pid); param.put("p", "1"); asyncQueryHandler.doWork(param); shops_listview.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { Intent it = new Intent(Intent.ACTION_VIEW, Uri.parse(NetUtil.getUrl(fileList.get(position).getSellUrl()))); //it.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); startActivity(it); } }); footer.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if(curpage < pages){ int cur = curpage+1; AsyncWorkHandler asyncQueryHandler = new AsyncWorkHandler(){ @Override public Object excute(Map<String, String> map) { return ProductAction.getProductShops(map); } @Override public void handleMessage(Message msg) { if(msg.obj!=null){ DetailShopsBean bean = (DetailShopsBean)msg.obj; if("true".equals(bean.getResult())){ ArrayList<ShopsBean> tmpList = bean.getFileList(); if(tmpList!=null && tmpList.size() > 0){ curpage++; for(ShopsBean shopBean : tmpList){ fileList.add(shopBean); } Log.d(Const.TAG, "ShopActivity.AsyncWork|curpage="+curpage+",pages="+pages+",fileList.size="+fileList.size()); shopsAdapter.notifyDataSetChanged(); } } } removeDialog(Const.PROGRESSBAR_WAIT); } }; //异步获取信息 showDialog(Const.PROGRESSBAR_WAIT); Map<String,String> param = new HashMap<String,String>(); param.put("product_id", pid); param.put("p", ""+cur); asyncQueryHandler.doWork(param); }else{ Toast.makeText(_context, "已经到最后一页", Toast.LENGTH_SHORT).show(); } } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case Const.PROGRESSBAR_WAIT: ProgressDialog wait_pd = new ProgressDialog(this); wait_pd.setMessage(Const.LOADING); return wait_pd; } return null; } }