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.SearchAdapter;
import com.yizhao.bean.ImageBean;
import com.yizhao.bean.SearchBean;
import com.yizhao.bean.SearchProductBean;
import com.yizhao.core.ATManager;
import com.yizhao.core.AsyncWorkHandler;
import com.yizhao.core.Const;
import com.yizhao.util.BitmapDownloaderTask;
import com.yizhao.util.ImageUtil;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Message;
//import android.view.KeyEvent;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class SearchActivity extends Activity{
private ListView listView;
private TextView tv;
private ImageView goback;
private SearchAdapter listItemAdapter;
private ArrayList<SearchProductBean> searchList;
private Context _context;
private Intent _intent;
private LayoutInflater inflater;
private View footer;
private int curpage = 1;//当前页
private int pages = 1;//共多少页
private String keyworld;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_res);
ATManager.addActivity(this);
_context = this;
_intent = this.getIntent();
inflater = LayoutInflater.from(_context);
footer = inflater.inflate(R.layout.search_footer, null);
listView = (ListView)findViewById(R.id.search_listview);
listView.addFooterView(footer);
goback = (ImageView)findViewById(R.id.search_goback);
tv = (TextView)findViewById(R.id.search_count_tv);
keyworld = _intent.getStringExtra("sname");
AsyncWorkHandler asyncQueryHandler = new AsyncWorkHandler(){
@Override
public Object excute(Map<String, String> params) {
return ProductAction.getSearchBean(params);
}
@Override
public void handleMessage(Message msg) {
if(msg.obj!=null){
SearchBean bean = (SearchBean)msg.obj;
if("true".equals(bean.getResult())){
tv.setText("共"+bean.getTotal()+"个搜索结果");
pages = (bean.getTotal()%Const.PAGE_SIZE_INT == 0) ? bean.getTotal()/Const.PAGE_SIZE_INT : bean.getTotal()/Const.PAGE_SIZE_INT+1;
searchList = bean.getFilelist();
listItemAdapter = new SearchAdapter(_context,searchList);
if(listItemAdapter!=null){
listView.setAdapter(listItemAdapter);
//开启多个线程去拉取图片------begin
if(searchList!=null){
int len = searchList.size();
for(int i = 0; i < len; i++){
final String id = searchList.get(i).getId();
String image_url = ImageUtil.getPicUrl(searchList.get(i).getCoverImage(), 1);
BitmapDownloaderTask task = new BitmapDownloaderTask(image_url){
@Override
protected void onPostExecute(
Bitmap bm) {
if(isCancelled()){
bm = null;
}
if(bm!=null){
ImageBean bean = new ImageBean();
bean.id = id;
bean.bitmap = bm;
listItemAdapter.putBitmap(bean.id, bean.bitmap);
listItemAdapter.notifyDataSetChanged();
}
}
};
task.execute("");
}
}
//开启多个线程去拉取图片------end
}
}
}
removeDialog(Const.PROGRESSBAR_WAIT);
}
};
//异步获取信息,实现两个方法excute跟onCompleteWork
Map<String,String> params = new HashMap<String,String>();
showDialog(Const.PROGRESSBAR_WAIT);
params.put("n",keyworld);
params.put("from", _intent.getStringExtra("from"));
params.put("p", "1");
asyncQueryHandler.doWork(params);
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> params) {
return ProductAction.getSearchBean(params);
}
@Override
public void handleMessage(Message msg) {
if(msg.obj!=null){
SearchBean bean = (SearchBean)msg.obj;
if("true".equals(bean.getResult())){
ArrayList<SearchProductBean> tmpList = bean.getFilelist();
if(tmpList!=null && tmpList.size() > 0){
curpage++;
for(SearchProductBean spbean : tmpList){
searchList.add(spbean);
}
Log.d(Const.TAG, "SearchActivity.AsyncWork|curpage="+curpage+",pages="+pages+",fileList.size="+searchList.size());
listItemAdapter.notifyDataSetChanged();
//开启多个后台线程去拉取图片
if(tmpList!=null){
int len = tmpList.size();
for(int i = 0; i < len; i++){
final String id = tmpList.get(i).getId();
String image_url = ImageUtil.getPicUrl(tmpList.get(i).getCoverImage(), 1);
BitmapDownloaderTask task = new BitmapDownloaderTask(image_url){
@Override
protected void onPostExecute(
Bitmap bm) {
if(isCancelled()){
bm = null;
}
if(bm!=null){
ImageBean bean = new ImageBean();
bean.id = id;
bean.bitmap = bm;
listItemAdapter.putBitmap(bean.id, bean.bitmap);
listItemAdapter.notifyDataSetChanged();
}
}
};
task.execute("");
}
}
}
}
}
removeDialog(Const.PROGRESSBAR_WAIT);
}
};
//异步获取信息,实现两个方法excute跟onCompleteWork
Map<String,String> params = new HashMap<String,String>();
showDialog(Const.PROGRESSBAR_WAIT);
params.put("n",keyworld);
params.put("from", _intent.getStringExtra("from"));
params.put("p", ""+cur);
asyncQueryHandler.doWork(params);
}else{
Toast.makeText(_context, "已经到最后一页", Toast.LENGTH_SHORT).show();
}
}
});
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Intent intent = new Intent();
intent.putExtra("product_id", searchList.get(position).getId());
intent.setClass(_context, DetailActivityGroup.class);
startActivity(intent);
}
});
goback.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
SearchActivity.this.finish();
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case Const.PROGRESSBAR_WAIT:
ProgressDialog wait_pd = new ProgressDialog(this);
wait_pd.setMessage(Const.SEARCHING);
return wait_pd;
}
return null;
}
// /**
// * 监听返回键事件
// */
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event){
// if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// ATManager.delActivity(this);
// }
// return super.onKeyDown(keyCode, event);
// }
}