package com.buaa.shortytall.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.buaa.shortytall.R;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.KeyEvent;
import android.view.View.OnClickListener;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
public class SearchActivity extends BaseActivity{
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;
@Override
protected Context setContext() {
return SearchActivity.this;
}
@Override
protected void initWindows() {
// TODO Auto-generated method stub
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
@Override
protected void initListeners() {
// TODO Auto-generated method stub
}
@Override
protected void initThreads() {
// TODO Auto-generated method stub
}
private void initNavigationBar(){
mNavigationBar.setTitleContent(R.string.app_name);
mNavigationBar.setRightImage(R.drawable.more);
}
private void initFooterBar(){
mFootBar.setPosition(3);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
System.out.println("onKeyDown");
mFootBar.setVisibility(View.GONE);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
mFootBar.setVisibility(View.VISIBLE);
return super.onKeyUp(keyCode, event);
}
@Override
protected View initViews() {
// TODO Auto-generated method stub
View contentView = mInflater.inflate(R.layout.search, null);
initNavigationBar();
initFooterBar();
searchFlag = true;
daodefault = new SQLiteDatabaseDao();
searchTextView = (EditText)contentView.findViewById(R.id.search_drugname_edittext);
searchButton = (Button)contentView.findViewById(R.id.search_drugname_button);
//searchSwitchButton = (Button)findViewById(R.id.search_drugname_switchbutton);
searchSwitchSpinner = (Spinner)contentView.findViewById(R.id.search_switch_spinner);
spinnerList.add("药品");
spinnerList.add("症状");
spinneradapter = new ArrayAdapter<String>(SearchActivity.this,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(SearchActivity.this,
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(SearchActivity.this,
listData,
R.layout.search_drug_list,
new String[]{"drugname"},
new int[]{R.id.drugname}
);
list.setAdapter(listItemAdapter);
list.setOnItemClickListener(clickItem);
return contentView;
}
OnItemClickListener clickItem = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
HashMap<String,Object> mapTemp = (HashMap<String,Object>)list.getItemAtPosition(arg2);
String valueTemp = (String) mapTemp.get("id");
System.out.println("the drug id "+valueTemp);
Intent intent=new Intent(SearchActivity.this,DrugDetailActivity.class);
intent.putExtra("detail", valueTemp);
startActivity(intent);
}
};
class SQLiteDatabaseDao {
public SQLiteDatabaseDao() {
mDb = 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 ?" , 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 ?" , 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();
}
}
}
}