package coolbuy360.searchhealth;
import java.util.List;
import java.util.Map;
import coolbuy360.adapter.ListViewAdapter;
import coolbuy360.logic.ConstantsSetting;
import coolbuy360.logic.DrugFavorite;
import coolbuy360.service.searchApp;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView.OnItemClickListener;
public class MemberDrugCollect extends Activity {
ListViewAdapter adapter;
int pageSize = ConstantsSetting.QLDefaultPageSize;
int pageIndex = 1;
private boolean isloading;
LinearLayout async_begin;
LinearLayout async_error;
ListView druglist_listview;
private Button loadMoreButton;
private ProgressBar proBar;
private TextView protxt;
private View loadMoreView;
searchApp app;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.member_drug_collect);
// Ϊ�˳�����
app=searchApp.getInstance();
app.addActivity(this);
// ���÷��ذ�ť
ImageButton actionbar_pre_btn = (ImageButton) this
.findViewById(R.id.actionbar_pre_btn);
actionbar_pre_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MemberDrugCollect.this.finish();
}
});
TextView actionbar_page_title = (TextView) this
.findViewById(R.id.actionbar_page_title);
actionbar_page_title.setText(R.string.member_collect_drug);
// druglist = new ArrayList<Map<String, String>>();
druglist_listview = (ListView) this.findViewById(R.id.druglist_listview);
// ����������������������������������������ʼ��foot_loading�ؼ�������������������������������������������
loadMoreView = getLayoutInflater().inflate(R.layout.p_druglist_foot,
null);
loadMoreButton = (Button) loadMoreView
.findViewById(R.id.p_listview_footbtn);
proBar = (ProgressBar) loadMoreView.findViewById(R.id.p_probar);
protxt = (TextView) loadMoreView.findViewById(R.id.p_protxt);
druglist_listview.addFooterView(loadMoreView); // �����б�ײ���ͼ
async_begin = (LinearLayout) findViewById(R.id.async_begin);
async_begin.setVisibility(View.VISIBLE);
async_error = (LinearLayout) findViewById(R.id.async_error);
new AsyncLoader().execute();
}
/**
* ��ʼ������
*
* @param druglist
*/
private void InitData(List<Map<String, String>> druglist) {
adapter = new ListViewAdapter(MemberDrugCollect.this, druglist);
adapter.count = druglist.size();
if (druglist.size() < pageSize) {
loadMoreView.setVisibility(View.GONE);
}
druglist_listview.setVisibility(View.VISIBLE);
druglist_listview.setAdapter(adapter);
druglist_listview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
if (firstVisibleItem + visibleItemCount == totalItemCount) {
if (!isloading)// ���û�м�����
{
loadMoreButton.setVisibility(View.GONE);
proBar.setVisibility(View.VISIBLE);
protxt.setVisibility(View.VISIBLE);
new AsynLoader_more().execute();
} else {
// storeListView.removeFooterView(loadMoreView);//
}
}
}
});
druglist_listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int posion,
long arg3) {
//FootView Item ���
if (arg3 == -1)
return;
// ExpandableListView ev = (ExpandableListView) parent;
Map<String, String> map = (Map<String, String>) druglist_listview
.getItemAtPosition(posion);
String drug_name = map.get("drugname");
String drug_id = map.get("drugid");
String drug_imgurl = map.get("drugimg");
String drug_store = map.get("enterprisename");
String drug_otc = map.get("prescriptiontype");
String drug_h = map.get("approvaltype");
String drug_bao = map.get("ishcdrug");
Bundle bundle = new Bundle();
bundle.putString("drugname", drug_name);
bundle.putString("drugid", drug_id);
bundle.putString("drugimg", drug_imgurl);
bundle.putString("drugstore", drug_store);
bundle.putString("h", drug_h.trim());
bundle.putString("otc", drug_otc.trim());
bundle.putString("bao", drug_bao.trim());
/*
* new Intent().setClass(DrugProduct.this, DrugList.class);
*/
Intent drugintent = new Intent().setClass(
MemberDrugCollect.this, DrugProductDetail.class);// ������һ��activity
drugintent.putExtras(bundle);
startActivity(drugintent);
}
});
//loadMoreButton.setOnClickListener(new moreOnClick());
}
private final class moreOnClick implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
loadMoreButton.setVisibility(View.GONE);
proBar.setVisibility(View.VISIBLE);
protxt.setVisibility(View.VISIBLE);
new AsynLoader_more().execute();
}
}
/**
* �첽���ظ���
*/
private class AsynLoader_more extends
AsyncTask<List<Map<String, String>>, Void, Integer> {
List<Map<String, String>> innerdruglist;
// 0 �������ݳɹ� ��1 ��������Ϊ�� �� 2�����������Ӵ����Ϊnull
@Override
protected Integer doInBackground(List<Map<String, String>>... params) {
// TODO Auto-generated method stub
try {
innerdruglist = DrugFavorite.getList(getBaseContext(),
pageSize, pageIndex + 1);
if (innerdruglist != null) {
return (innerdruglist.size() > 0) ? 0 : 1;
} else {
return 2;// �������Ӵ���
}
} catch (Exception e) {
// TODO Auto-generated catch block
return 2;
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
isloading = true;
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
if (result == 0) {
for (Map<String, String> item : innerdruglist) {
adapter.addItem(item);
}
if (innerdruglist.size() < pageSize) {
loadMoreView.setVisibility(View.GONE);
} else {
loadMoreButton.setText("����");
loadMoreButton.setVisibility(View.VISIBLE);
}
proBar.setVisibility(View.GONE);// ����progressbar
protxt.setVisibility(View.GONE);
isloading = false;
adapter.count += innerdruglist.size();
adapter.notifyDataSetChanged();
pageIndex++;
} else if (result == 1) { // ������ݼ������
if (innerdruglist.size() < pageSize) {
loadMoreView.setVisibility(View.GONE);
} else {
loadMoreButton.setVisibility(View.VISIBLE);
}
// loadMoreButton.setVisibility(View.VISIBLE);
loadMoreButton.setBackgroundColor(getResources().getColor(
R.color.transparent));
loadMoreButton.setClickable(false);
loadMoreButton.setText("û�и������ݣ�");
proBar.setVisibility(View.GONE); // ����progressbar
protxt.setVisibility(View.GONE);
// isloading = false;
} else if (result == 2) {
loadMoreButton.setVisibility(View.VISIBLE);
loadMoreButton.setBackgroundColor(getResources().getColor(
R.color.transparent));
loadMoreButton.setText("�������Ӵ���");
proBar.setVisibility(View.GONE);
protxt.setVisibility(View.GONE);// ����progressbar
isloading = false;
}
}
}
/**
* ��һ���첽��������
*/
private class AsyncLoader extends
AsyncTask<List<Map<String, String>>, Void, Integer> {
List<Map<String, String>> innerdruglist;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
loadMoreButton.setText("����");
loadMoreView.setVisibility(View.VISIBLE);
}
@Override
protected Integer doInBackground(List<Map<String, String>>... params) {
// TODO Auto-generated method stub
try {
innerdruglist = DrugFavorite.getList(getBaseContext(),
pageSize, pageIndex);
if (innerdruglist != null) {
return (innerdruglist.size() > 0) ? 0 : 1;
} else {
return 2;// �������Ӵ���
}
} catch (Exception e) {
// TODO Auto-generated catch block
return 2;
}
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
if (result == 0) {
InitData(innerdruglist);
async_begin.setVisibility(View.GONE);
} else if (result == 1) {
async_begin.setVisibility(View.GONE);
TextView async_error_txt = (TextView) async_error
.findViewById(R.id.async_error_txt);
Button async_error_reflesh = (Button) async_error
.findViewById(R.id.async_error_reflesh);
async_error_reflesh.setVisibility(View.GONE);
async_error_txt.setText("����û���ղ��κ�ҩƷ");
async_error.setVisibility(View.VISIBLE);
} else if (result == 2) {
async_begin.setVisibility(View.GONE);
async_error.setVisibility(View.VISIBLE);
TextView async_error_txt = (TextView) async_error
.findViewById(R.id.async_error_txt);
async_error_txt.setText(R.string.error_nonetwork);
Button async_error_reflesh = (Button) async_error
.findViewById(R.id.async_error_reflesh);
async_error_reflesh.setVisibility(View.VISIBLE);
async_error_reflesh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
async_error.setVisibility(View.GONE);
async_begin.setVisibility(View.VISIBLE);
new AsyncLoader().execute();
}
});
}
}
}
}