package com.buaa.shortytall.view.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.buaa.shortytall.R;
import com.buaa.shortytall.activity.DrugDetailActivity;
public class SearchFragment extends New_BaseFragment{
private SQLiteDatabase mDb;
private SQLiteDatabaseDao daodefault;
private EditText searchTextView;
private Button searchButton;
//private Button searchSwitchButton;
private ListView list;
private Boolean searchFlag;
private Spinner searchSwitchSpinner;
private List<String> spinnerList = new ArrayList<String>();
private ArrayAdapter<String> spinneradapter;
OnClickListener mySearchButtonClickListener;
// 存储数据的数组列表
ArrayList<HashMap<String, Object>> listData = new ArrayList<HashMap<String,Object>>();
// 适配器
SimpleAdapter listItemAdapter;
OnItemClickListener clickItem = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
System.out.println("onclick item ");
HashMap<String,Object> mapTemp = (HashMap<String,Object>)list.getItemAtPosition(arg2);
String valueTemp = (String) mapTemp.get("id");
Intent intent=new Intent(context,DrugDetailActivity.class);
intent.putExtra("detail", valueTemp);
startActivity(intent);
}
};
class SQLiteDatabaseDao {
public SQLiteDatabaseDao() {
mDb = context.openOrCreateDatabase("/sdcard/drug.db",
SQLiteDatabase.CREATE_IF_NECESSARY, null);
//初始化获取所有数据表数据
getAllData("阿司匹林");
}
// 查询所有数据
public void getAllData(String text) {
if(listData.size()>0)
{
listData.clear();
}
//System.out.println("getAlldata"+ text);
if(searchFlag == true)
{
Cursor c = mDb.rawQuery("select * from drug where cnName like ? limit 10" , new String[] { "%"+text.toString() + "%" });
//int columnsSize = c.getColumnCount();
//System.out.println("cursor size"+columnsSize);
listData = new ArrayList<HashMap<String, Object>>();
// 获取表的内容
while (c.moveToNext())
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", c.getString(0));
map.put("drugname", c.getString(5));
listData.add(map);
}
c.close();
}
else if(searchFlag == false)
{
Cursor c = mDb.rawQuery("select * from drug where cnName like ? or indication like ? limit 10" , new String[] { "%"+text.toString() + "%","%"+text.toString() + "%" });
//int columnsSize = c.getColumnCount();
//System.out.println("cursor size"+columnsSize);
listData = new ArrayList<HashMap<String, Object>>();
// 获取表的内容
while (c.moveToNext())
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", c.getString(0));
map.put("drugname", c.getString(5));
listData.add(map);
}
c.close();
}
}
}
public SearchFragment(Handler handler, Context context) {
super(handler, context);
}
// @Override
// public void onResume() {
// // TODO Auto-generated method stub
// list.setAdapter(listItemAdapter);
// list.setOnItemClickListener(clickItem);
// super.onResume();
// }
@Override
protected Tab initTab() {
Tab tab = ((SherlockFragmentActivity)context).getSupportActionBar()
.newTab();
tab.setText("药品搜索");
tab.setIcon(context.getResources().getDrawable(R.drawable.search));
return tab;
}
@Override
public void handleMessage(Message message) {
}
@Override
public int getAsyncInitViewResId() {
// TODO Auto-generated method stub
return R.layout.search;
}
@Override
protected void onInflated() {
searchFlag = true;
daodefault = new SQLiteDatabaseDao();
searchTextView = (EditText)contentView.findViewById(R.id.search_drugname_edittext);
searchButton = (Button)contentView.findViewById(R.id.search_drugname_button);
searchSwitchSpinner = (Spinner)contentView.findViewById(R.id.search_switch_spinner);
spinnerList.add("药品");
spinnerList.add("症状");
spinneradapter = new ArrayAdapter<String>(context,R.layout.spinner_item, spinnerList);
spinneradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
searchSwitchSpinner.setAdapter(spinneradapter);
searchSwitchSpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
@SuppressWarnings("unchecked")
public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
/* 将所选mySpinner 的值带入myTextView 中*/
searchTextView.setHint(spinneradapter.getItem(arg2));
String type = spinneradapter.getItem(arg2);
if(type.equalsIgnoreCase("药品"))
{
searchFlag = true;
}
else if(type.equalsIgnoreCase("症状"))
{
searchFlag = false;
}
/* 将mySpinner 显示*/
arg0.setVisibility(View.VISIBLE);
}
@SuppressWarnings("unchecked")
public void onNothingSelected(AdapterView arg0) {
// TODO Auto-generated method stub
arg0.setVisibility(View.VISIBLE);
}
});
searchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String searchdrugname = searchTextView.getText().toString();
System.out.println("onclick"+searchdrugname);
daodefault.getAllData(searchdrugname);
SimpleAdapter listItemAdaptertemp = new SimpleAdapter(context,
listData,
R.layout.search_drug_list,
new String[]{"drugname"},
new int[]{R.id.drugname}
);
list.setAdapter(listItemAdaptertemp);
list.setOnItemClickListener(clickItem);
}
});
list = (ListView) contentView.findViewById(R.id.search_drugname_listview);
listItemAdapter = new SimpleAdapter(context,
listData,
R.layout.search_drug_list,
new String[]{"drugname"},
new int[]{R.id.drugname}
);
list.setAdapter(listItemAdapter);
list.setOnItemClickListener(clickItem);
list.setFocusable(true);
}
}