package coolbuy360.searchhealth;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
import coolbuy360.adapter.ExpandableAdapter;
import coolbuy360.logic.DrugType;
import coolbuy360.logic.User;
import coolbuy360.service.StrictModeWrapper;
import coolbuy360.service.TimestampException;
import coolbuy360.service.searchApp;
import coolbuy360.zxing.CaptureActivity;
public class DrugProduct extends Activity {
private ExpandableListView elv;
private List<Map<String, String>> child;
int expandFlag = -1;
ExpandableAdapter viewAdapter;
List<Map<String, String>> groups = null;
List<List<Map<String, String>>> childs = null;
DrugType.DrugTypes dt = null;
private int posion;
LinearLayout async_begin;
LinearLayout async_error;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
StrictModeWrapper.init(this); // �����Ͽ�ģʽ
super.onCreate(savedInstanceState);
// Ϊ�˳�����
searchApp.getInstance().addActivity(this);
setContentView(R.layout.drugproduct);
// ͨ��ID���ҵ�main.xml�е�ExpandableListView�ؼ�
elv = (ExpandableListView) findViewById(R.id.p_expandablleListView);
// ���ü�ͷ����
int width = ConMain.getDisplayWidth();
elv.setIndicatorBounds(width - 50, width - 20);
/*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
DrugProduct.this.finish();
overridePendingTransition(R.anim.push_no,R.anim.push_top_out);
}
});*/
ImageButton searchar_searchbtn = (ImageButton) this
.findViewById(R.id.searchbar_searchbtn);
final EditText searchbar_inputtext = (EditText) this
.findViewById(R.id.searchbar_inputtext);
ImageButton searchbar_scanbtn = (ImageButton) this
.findViewById(R.id.searchbar_scanbtn);
searchbar_scanbtn.setOnClickListener(new scanOnclick());
// final
searchar_searchbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String keyword = searchbar_inputtext.getText().toString().trim();
if (!keyword.equals("")) {
Bundle bundle = new Bundle();
Intent drugsearchIntent = new Intent().setClass(
DrugProduct.this, DrugSearch.class);
bundle.putString("keyword", keyword);
drugsearchIntent.putExtras(bundle);
startActivity(drugsearchIntent);
} else {
Toast.makeText(DrugProduct.this, "�������ѯ�ؼ���", Toast.LENGTH_SHORT).show();
}
}
});
// elv.setGroupIndicator(this.getResources().getDrawable(R.layout.expandablelistviewselector));//�����滻ͼ��
// elv.seti
// elv.setOnGroupClickListener(onGroupClickListener);//����Group���ʱ��������
// ��������������������������������������������������������ʼ�����ݡ�������������������������������������������������������������
// ***************************����ļ����¼���������������������������������������������������������������
async_begin = (LinearLayout) findViewById(R.id.async_begin);
async_begin.setVisibility(View.VISIBLE);
elv.setVisibility(View.GONE);
new AsyncLoader_GuessInfo().execute();
// �������ҳ
/*ImageView gotestimg = (ImageView) this.findViewById(R.id.p_imgTitle);
gotestimg.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
Intent testpageIntent = new Intent().setClass(DrugProduct.this,
TestPage.class);
startActivity(testpageIntent);
return false;
}
});*/
}
/**
* ɨ�����¼�
*
* @author Administrator
*
*/
private final class scanOnclick implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent openCameraIntent = new Intent(DrugProduct.this,
CaptureActivity.class);
startActivityForResult(openCameraIntent, 0);
}
}
/*@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// String tags=v.getTag().toString();
// Map<String, String> cdata
// =viewAdapter.groups.get(Integer.parseInt(tags));
// Object aa=v.getTag(1);
// drugBudde drug=(drugBudde)v.getTag(1);
// String tags=v.getTag(); //���button�����ֵ
Intent childIntent = new Intent().setClass(DrugProduct.this,
DrugList.class);
String drugtype_name = v.getTag(R.id.drugtype_name).toString();
String drugtype_id = v.getTag(R.id.drugtype_id).toString();
Bundle bundle = new Bundle();
bundle.putString("type_id", drugtype_id);// ������Ҫ���ݵ�ֵ
bundle.putString("drug_title", drugtype_name);
bundle.putString("from", "drugtype");
// bundle.putString("type_name", )
childIntent.putExtras(bundle);
startActivityForResult(childIntent, 0);
}*/
/**
* ��ʼ��������
*
*/
private void initadapter() {
/*
* if (groups == null | groups.size() <= 0) { Toast.makeText(this,
* "��ȷ�������Ƿ�����", 1).show(); }
*/// else {
viewAdapter = new ExpandableAdapter(this, groups, childs);
elv.setAdapter(viewAdapter);
/**
* ���ڵ���ʱ�������¼�
*/
elv.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
final int groupPosition, long id) {
// ExpandableListView ev = (ExpandableListView) parent;
// Map<String, String> glist = (Map<String, String>)
// ev.getItemAtPosition(groupPosition);
// View childview =ev.getChildAt(groupPosition);
Map<String, String> glist = groups.get(groupPosition);
List<Map<String, String>> clist = childs.get(groupPosition);
// childview.
int childcount = clist.size();
if (childcount > 0) {
return false;
} else {
String gname = glist.get("drugtypename");
String gid = glist.get("drugtypeid");
posion = groupPosition;
// Toast.makeText(DrugProduct.this, childcount+"",
// 1).show();
Intent listIntent = new Intent().setClass(DrugProduct.this,
DrugList.class);
Bundle bundle = new Bundle();
bundle.putString("type_id", gid);// ������Ҫ���ݵ�ֵ
bundle.putString("drug_title", gname);
bundle.putString("from", "drugtype");
// bundle.putString("type_name", )
listIntent.putExtras(bundle);
// startActivityForResult(listIntent, 0);
startActivity(listIntent);
return true;
}
}
});
/**
* �ӽڵ�����ʱ�����¼�
*/
elv.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// ExpandableListView ev = (ExpandableListView) parent;
// ev.getChildAt(groupPosition;
// Toast.makeText(getBaseContext(),
// String.valueOf(childPosition)+"" , 1).show();
Intent childIntent = new Intent().setClass(DrugProduct.this,
DrugList.class);
/*
* String drugtype_name =
* v.getTag(R.id.drugtype_name).toString(); String drugtype_id =
* v.getTag(R.id.drugtype_id).toString();
*/
// ListView listView=(ListView)v;
// Toast.makeText(DrugProduct.this, childPosition+"", 1).show();
// ev.getChildAt(groupPosition)
// Map<String, String> childMap=childMaplist.get(0);
/*
* String drugtype_name =
* v.getTag(R.id.drugtype_name).toString(); String drugtype_id =
* v.getTag(R.id.drugtype_id).toString();
*/
String drugtype_name = v.getTag(R.id.drugtype_name).toString();
String drugtype_id = v.getTag(R.id.drugtype_id).toString();
// Toast.makeText(DrugProduct.this, drugtype_id, 1).show();
Bundle bundle = new Bundle();
bundle.putString("type_id", drugtype_id);// ������Ҫ���ݵ�ֵ
bundle.putString("drug_title", drugtype_name);
bundle.putString("from", "drugtype");
// bundle.putString("type_name", )
childIntent.putExtras(bundle);
// startActivityForResult(childIntent, 0);
startActivity(childIntent);
return true;
}
});
}
// }
private void loaddata() {
DrugType.DrugTypes dt = DrugType.getAllDrugTypes();
groups = new ArrayList<Map<String, String>>();
childs = new ArrayList<List<Map<String, String>>>();
childs = dt.ChildTypes;
groups = dt.RootTypes;
// TODO Auto-generated catch block
// e.printStackTrace();
// Toast.makeText(this, "��ȷ�������Ƿ�����", 1).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// ����ɨ�������ڽ�������ʾ��
if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("result");
Intent drugdetailIntent = new Intent().setClass(DrugProduct.this,
DrugProductDetail.class);
Bundle bundle1 = new Bundle();
bundle1.putString("serisecode", scanResult);
drugdetailIntent.putExtras(bundle1);
startActivity(drugdetailIntent);
// Toast.makeText(this, scanResult, 1).show();
// resultTextView.setText(scanResult);
/*
* Intent intent = new
* Intent(BarCodeActivity.this,WebViewActivity.class); Intent intent
* = new Intent(BarCodeActivity.this,MainActivity.class);
* intent.putExtra("url", scanResult); startActivity(intent);
*/
}
}
/**
* �첽��ȡҩƷ��������
*/
private class AsyncLoader_GuessInfo extends
AsyncTask<String, Void, Integer> {
@Override
protected Integer doInBackground(String... params) {
int result = 0;
try {
// ��������
loaddata();
//Ӧ��������ȡ�豸�û�ID�����豸�ӷ����ע��һ���µ�ID
try {
User.getDevAppUserID(DrugProduct.this.getBaseContext());
} catch (Exception e) {
// TODO: handle exception
}
if (groups != null)
result = 2;
// Toast.makeText(DrugStore.this, "2", 1).show();
} catch (TimestampException ex) {
result = -2;
} catch (Exception ex) {
result = -1;
}
return result;
}
@Override
// �������
protected void onPostExecute(Integer result) {
Log.i("ExerciseGuess", "onPostExecute(Result result) called");
if (result == 2) {
initadapter();
elv.setVisibility(View.VISIBLE);
async_begin.setVisibility(View.GONE);
} else {
// Toast.makeText(DrugStore.this, "-1", 1).show();
async_begin.setVisibility(View.GONE);
async_error = (LinearLayout) findViewById(R.id.async_error);
async_error.setVisibility(View.VISIBLE);
TextView async_error_txt = (TextView) async_error
.findViewById(R.id.async_error_txt);
if (result == -2) {
async_error_txt.setText(R.string.error_timestamp);
} else {
async_error_txt.setText(R.string.error_nonetwork);
}
Button reload_btn = (Button) async_error
.findViewById(R.id.async_error_reflesh);
reload_btn.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_GuessInfo().execute();
}
});
}
}
}
/**
* ģ��Home������ϵͳ��������Ӧ�ý���
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// ע��
intent.addCategory(Intent.CATEGORY_HOME);
this.startActivity(intent);
return true;
}
return super.onKeyDown(keyCode, event);
}
/*private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "�ٰ�һ���˳�����",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
// Log.i(TAG, "�˳�");
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}*/
}