package org.carelife.creader.ui.fragment; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.carelife.creader.R; import org.carelife.creader.db.BookDao; import org.carelife.creader.ui.activity.SearchResultList; import org.carelife.creader.ui.component.IntroduceDialog; import org.carelife.creader.util.ToastUtil; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class SearchHistoryFragment extends Fragment { ListView historyList = null; List<Map<String, Object>> historyBookList; private HistoryBookAdapter book_Adapter; View listaddview; private SharedPreferences sp; private Editor edit; ToastUtil toast; BookDao bookDao; LinearLayout llayout; IntroduceDialog dialog; public static SearchHistoryFragment newInstance() { SearchHistoryFragment f = new SearchHistoryFragment(); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sp = getActivity().getSharedPreferences("sogounovel", Context.MODE_PRIVATE); edit = sp.edit(); toast = ToastUtil.getInstance(getActivity()); bookDao = BookDao.getInstance(getActivity()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.searchhistory, container, false); historyList = (ListView) v.findViewById(R.id.searchhistory_list); historyList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> l, View v, int position, long id) { if (position >= historyBookList.size()) { toast.setText("��,���㣬�𼱰�"); return; } String query_word = historyBookList.get(position) .get("bookname").toString().trim(); bookDao.insertHistory(query_word); try { query_word = URLEncoder.encode(query_word, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Intent intent = new Intent(getActivity(), SearchResultList.class); edit.putString("querystring", query_word); edit.commit(); startActivity(intent); } }); llayout = (LinearLayout) v.findViewById(R.id.searchhistory_clearall); llayout.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog(); } }); return v; } @Override public void onResume() { super.onResume(); historyBookList = bookDao.getHistory(); if (historyBookList == null) { historyBookList = new ArrayList<Map<String, Object>>(); } book_Adapter = new HistoryBookAdapter(getActivity()); historyList.setAdapter(book_Adapter); } protected void dialog() { dialog = new IntroduceDialog(getActivity(), R.layout.dialog_clear_history, R.style.Theme_dialog); dialog.show(); Button pButton = (Button) dialog.findViewById(R.id.dialog_ok); Button cButton = (Button) dialog.findViewById(R.id.dialog_cancer); pButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { for (int i = 0; i < historyBookList.size(); i++) { String name = (String) historyBookList.get(i).get( "bookname"); bookDao.delHistorySearch(name); } historyBookList.clear(); book_Adapter.updateDataset(); dialog.dismiss(); } }); cButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); } private class HistoryBookAdapter extends BaseAdapter { Context context; HolderView holder; public HistoryBookAdapter(Context context) { this.context = context; } public int getCount() { return historyBookList.size(); } public Object getItem(int position) { return historyBookList.get(position).get("bookname"); } public long getItemId(int position) { return position; } public void updateDataset() { this.notifyDataSetChanged(); } public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.searchhistoryitem, null); holder = new HolderView(); holder.title = (TextView) convertView .findViewById(R.id.searchhistory_bookname); holder.clear = (ImageView) convertView .findViewById(R.id.searchhistory_clear); convertView.setTag(holder); holder.clear.setOnClickListener(new OnClickListener() { public void onClick(View v) { String name = (String) (historyBookList.get(position) .get("bookname")); historyBookList.remove(position); bookDao.delHistorySearch(name); book_Adapter = new HistoryBookAdapter(getActivity()); historyList.setAdapter(book_Adapter); } }); } else { holder = (HolderView) convertView.getTag(); } if (null != historyBookList.get(position)) { holder.title.setText(historyBookList.get(position) .get("bookname").toString().trim()); } return convertView; } private class HolderView { TextView title; ImageView clear; } } }