package com.buaa.shortytall.activity; import java.util.ArrayList; import java.util.HashMap; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.widget.EditText; import android.widget.ListView; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.buaa.shortytall.R; import com.buaa.shortytall.adapter.DrugsAdapter; import com.buaa.shortytall.bean.Comment; import com.buaa.shortytall.bean.Drug; import com.buaa.shortytall.thread.GetAllCommentsThread; import com.buaa.shortytall.thread.GetAllCommentsThread.GetAllCommentsHandler; import com.buaa.shortytall.thread.GetAllCommentsThread.GetAllCommentsListener; import com.buaa.shortytall.util.JsonUtil; public class DrugDetailActivity extends DefaultActivity implements GetAllCommentsListener{ private SQLiteDatabase mDb; private SQLiteDatabaseDao daodefault; private ListView druglistview; private ArrayList<Comment> mComments; // 存储数据的数组列表 private ArrayList<HashMap<String, Object>> listData = new ArrayList<HashMap<String,Object>>(); //存储评论数据 private ArrayList<HashMap<String, Object>> CommentslistData = new ArrayList<HashMap<String,Object>>(); // 适配器 private DrugsAdapter listItemAdapter; private String initdrugname; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initViews(); } @Override protected void onResume() { // TODO Auto-generated method stub Intent intent=getIntent(); String drugid = intent.getStringExtra("detail"); daodefault = new SQLiteDatabaseDao(); daodefault.getAllData(drugid); GetAllCommentsThread.GetAllCommentsHandler handler = new GetAllCommentsHandler(DrugDetailActivity.this); GetAllCommentsThread commentsThread = new GetAllCommentsThread(handler,"10000"); commentsThread.start(); super.onResume(); } @Override public boolean onPrepareOptionsMenu(Menu menu) { // TODO Auto-generated method stub //menu.clear(); menu.clear(); MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.drugdetailfunction, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getTitle().equals(getString(R.string.personal_recommend))){ //Toast.makeText(New_MainActivity.this, "test", Toast.LENGTH_SHORT).show(); new AlertDialog.Builder(context) .setTitle("推荐理由") .setIcon(R.drawable.ic_launcher) .setView(new EditText(context)) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show(); } if(item.getTitle().equals(getString(R.string.personal_store))){ //Toast.makeText(New_MainActivity.this, "test", Toast.LENGTH_SHORT).show(); new AlertDialog.Builder(context).setMessage("收藏成功").setPositiveButton("确定", null).show(); } if(item.getTitle().equals(getString(R.string.sendit_weibo))){ //Toast.makeText(New_MainActivity.this, "test", Toast.LENGTH_SHORT).show(); EditText myedittext = new EditText(context); myedittext.setHint(initdrugname+"真得不错"); new AlertDialog.Builder(context) .setTitle("分享到微博") .setIcon(R.drawable.ic_launcher) .setView(myedittext) .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show(); } return super.onOptionsItemSelected(item); } @Override public void getAllCommentsFailed() { // TODO Auto-generated method stub } protected void initViews() { // TODO Auto-generated method stub setContentView(R.layout.drugdetail); listItemAdapter = new DrugsAdapter(context, null); druglistview = (ListView)findViewById(R.id.drugdetail_information_listview); druglistview.setAdapter(listItemAdapter); } class SQLiteDatabaseDao { public SQLiteDatabaseDao() { mDb = openOrCreateDatabase("/sdcard/drug.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); //初始化获取所有数据表数据 //getAllData("阿司匹林"); } // 查询所有数据 public void getAllData(String id) { Cursor c = mDb.rawQuery("select cnName,commonName,engName,component,indication,pack,dosage,adverseReactions,contraindications,precautions,drugInteractions,createDate,modifyDate from drug where id = ?" , new String[] {id.toString()}); int columnsSize = c.getColumnCount(); listItemAdapter.setDrugnumber(columnsSize); //System.out.println("cursor size"+columnsSize); listData = new ArrayList<HashMap<String, Object>>(); // 获取表的内容 while (c.moveToNext()) { for(int i=0;i<columnsSize;i++) { Drug drugitem = new Drug(); drugitem.setmTitle(this.changeName(i)); String description = c.getString(i); if(description == null) { description = new String("暂无"); } String descriptionreplace = description.replace("<br/>", ""); if(i==0) { initdrugname = descriptionreplace; } //map.put("drugdetail_description",descriptionreplace); drugitem.setmDrugDescription(descriptionreplace); drugitem.setFlag(1); listItemAdapter.setDrugData(drugitem); } } c.close(); } public String changeName(int id) { switch (id) { case 0: return new String("商品名称"); case 1: return new String("通用名称"); case 2: return new String("英文名称"); case 3: return new String("成分"); case 4: return new String("适应症"); case 5: return new String("规格"); case 6: return new String("用法用量"); case 7: return new String("不良反应"); case 8: return new String("禁忌"); case 9: return new String("注意事项"); case 10: return new String("药物相互作用"); case 11: return new String("核准日期"); case 12: return new String("修改日期"); default: return null; } } } @Override protected String getActionBarTitle() { // TODO Auto-generated method stub return "药品详情"; } @Override protected Context getContext() { // TODO Auto-generated method stub return DrugDetailActivity.this; } @Override public void getAllCommentsSuccessed(String json) { // TODO Auto-generated method stub ArrayList<Comment> data = JsonUtil.praseCommentsJson(json); int sizeofComments = data.size()-1; listItemAdapter.setCommentsData(data); listItemAdapter.setCommentsnumber(sizeofComments); } }