package com.buaa.shortytall.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
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.os.Handler;
import android.os.Message;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.buaa.shortytall.R;
import com.buaa.shortytall.activity.DrugDetailActivity.SQLiteDatabaseDao;
import com.buaa.shortytall.thread.GetAllPersonDrugNewsThread;
import com.buaa.shortytall.thread.GetAllPersonDrugNewsThread.GetAllDrugHandler;
import com.buaa.shortytall.thread.GetAllPersonDrugNewsThread.GetAllDrugListener;
import com.buaa.shortytall.thread.GetAllTasksThread;
import com.buaa.shortytall.thread.GetAllTasksThread.GetAllTasksHandler;
import com.buaa.shortytall.thread.GetAllTasksThread.GetAllTasksListener;
import com.buaa.shortytall.util.JsonUtil;
public class ProfileDrugActivity extends DefaultActivity implements GetAllDrugListener {
private SQLiteDatabase mDb;
private SQLiteDatabaseDao daodefault;
private ListView list;
// 存储数据的数组列表
private ArrayList<HashMap<String, Object>> listData = new ArrayList<HashMap<String,Object>>();
private ArrayList<HashMap<String, Object>> drugidlist=new ArrayList<HashMap<String, Object>>();
// 适配器
private SimpleAdapter listItemAdapter;
private MyThread thread;
//ui进程的handler
Handler handler= new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//list = (ListView)findViewById(R.id.personaltasks_listview);
listItemAdapter = new SimpleAdapter(ProfileDrugActivity.this,
listData,
R.layout.persondrug_list,
new String[]{"drug_title","drug_time"},
new int[]{R.id.persondrug_title_textview,R.id.persondrug_buy_textview}
);
//System.out.println("listItemAdapter"+listItemAdapter);
list.setAdapter(listItemAdapter);
//list.setOnItemClickListener(clickItem);
}
};
public class MyThread extends Thread implements Runnable {
public void run() {
while (true) {
if (drugidlist.size() > 0) {
daodefault = new SQLiteDatabaseDao();
daodefault.getAllData(drugidlist);
drugidlist.clear();
if (listData.size() > 0) {
Message msg = new Message();
handler.sendMessage(msg);// 向Handler发送消息,
System.out.println("listData.size() "+listData.size());
}
}
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thread = new MyThread();
thread.start();
initViews();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
GetAllPersonDrugNewsThread.GetAllDrugHandler handler = new GetAllDrugHandler(ProfileDrugActivity.this);
GetAllPersonDrugNewsThread tasksThread = new GetAllPersonDrugNewsThread(handler);
tasksThread.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.taskfunction, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.getTitle().equals("推荐给好友")){
//Toast.makeText(New_MainActivity.this, "test", Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(context).setMessage("推荐给好友成功").setPositiveButton("确定", null).show();
}
return super.onOptionsItemSelected(item);
}
protected void initViews() {
// TODO Auto-generated method stub
setContentView(R.layout.personal_drug);
LayoutInflater inflater = LayoutInflater.from(this);
// View mView = inflater.inflate(R.layout.persondrug_list, null,false);
// TextView mLink = (TextView)mView.findViewById(R.id.persondrug_buy_textview);
// mLink.setText(Html.fromHtml("<b>text3:</b>Text with a "
// + "<a href=\"http://www.google.com\">link</a> "
// + "created in the Java source code using HTML."));
list = (ListView)findViewById(R.id.personaldrug_listview);
listItemAdapter = new SimpleAdapter(ProfileDrugActivity.this,
listData,
R.layout.persondrug_list,
new String[]{"drug_title","drug_time"},
new int[]{R.id.persondrug_title_textview,R.id.persondrug_buy_textview}
);
list.setAdapter(listItemAdapter);
list.setDivider(null);
list.setOnItemClickListener(clickItem);
}
OnItemClickListener clickItem = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
@SuppressWarnings("unchecked")
HashMap<String,Object> mapTemp = (HashMap<String,Object>)list.getItemAtPosition(arg2);
String valueTemp = (String) mapTemp.get("drug_id");
System.out.println("the drug id "+valueTemp);
Intent intent=new Intent(ProfileDrugActivity.this,DrugDetailActivity.class);
intent.putExtra("detail", valueTemp);
startActivity(intent);
}
};
@Override
protected String getActionBarTitle() {
// TODO Auto-generated method stub
return "我的收藏";
}
@Override
protected Context getContext() {
// TODO Auto-generated method stub
return ProfileDrugActivity.this;
}
class SQLiteDatabaseDao {
public SQLiteDatabaseDao() {
mDb = openOrCreateDatabase("/sdcard/drug.db",
SQLiteDatabase.CREATE_IF_NECESSARY, null);
//初始化获取所有数据表数据
//getAllData("阿司匹林");
}
// 查询所有数据
public void getAllData(ArrayList<HashMap<String, Object>> drugids) {
int size = drugids.size();
for(int j=0;j<size;j++)
{
Cursor c = mDb.rawQuery("select id,commonName from drug where id = ?" , new String[] {drugids.get(j).get("drug_id").toString()});
listData = new ArrayList<HashMap<String, Object>>();
// 获取表的内容
while (c.moveToNext())
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("drug_title", c.getString(1));
//map.put("drug_", c.getString(1));
map.put("drug_id",c.getString(0));
map.put("drug_time", drugids.get(j).get("drug_time").toString());
System.out.println("drug title is"+c.getString(1)+"drug id is"+c.getString(0));
listData.add(map);
}
c.close();
}
}
}
@Override
public void getAllDrugSuccessed(String json) {
// TODO Auto-generated method stub
drugidlist = JsonUtil.prasePersonDrugJson(json);
//System.out.println("drugidlist is :"+drugidlist);
if(drugidlist.size()>0)
{
System.out.println("drugidlist size is :"+drugidlist.size());
}
}
@Override
public void getAllDrugFailed() {
// TODO Auto-generated method stub
}
}