package com.zhan_dui.dictionary.cursoradapters; import org.holoeverywhere.app.Dialog; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v4.view.ViewPager; import android.support.v4.widget.CursorAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.viewpagerindicator.TitlePageIndicator; import com.zhan_dui.dictionary.R; import com.zhan_dui.dictionary.asynctasks.QueryAsyncTask; import com.zhan_dui.dictionary.datacenter.DictionaryDataCenter; import com.zhan_dui.dictionary.db.DictionaryDB; import com.zhan_dui.dictionary.listeners.IndicatorOnPageChangeListener; import com.zhan_dui.dictionary.pageradapter.QueryManageFragmentPager; public class SimpleWordAdapter extends CursorAdapter implements OnClickListener { private LayoutInflater mInflater; private Context mContext; private DictionaryDB mDictionaryDB; @SuppressWarnings("deprecation") public SimpleWordAdapter(Context context, Cursor c) { super(context, c); mContext = context; mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mDictionaryDB = new DictionaryDB(mContext, DictionaryDB.DB_NAME, null, DictionaryDB.DB_VERSION); } @Override public void bindView(View convertView, Context context, Cursor cursor) { ViewHolder viewHolder = (ViewHolder) convertView.getTag(); String word = cursor.getString(cursor.getColumnIndex("word")); String id = cursor.getString(cursor.getColumnIndex("_id")); convertView.setContentDescription(word); viewHolder.mWordtTextView.setText(word); viewHolder.mDeleteButton.setContentDescription(id); } @Override public View newView(Context context, Cursor cursor, ViewGroup arg2) { View view = mInflater.inflate(R.layout.simple_word_item, null); ViewHolder viewHolder = new ViewHolder(); viewHolder.mWordtTextView = (TextView) view.findViewById(R.id.word); viewHolder.mDeleteButton = (Button) view.findViewById(R.id.delete); viewHolder.mDeleteButton.setOnClickListener(this); view.setTag(viewHolder); view.setOnClickListener(this); return view; } private class ViewHolder { TextView mWordtTextView; Button mDeleteButton; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.delete: String id = (String) v.getContentDescription(); SQLiteDatabase sqLiteDatabase = mDictionaryDB.getWritableDatabase(); sqLiteDatabase.execSQL("delete from `word` where `_id`='" + id + "'"); Cursor cursor = sqLiteDatabase.rawQuery( "select * from `word` order by `_id` desc", null); changeCursor(cursor); notifyDataSetChanged(); sqLiteDatabase.close(); break; case R.id.word_item: String word = (String) v.getContentDescription(); Dialog dialog = new Dialog(mContext); View query_View = mInflater.inflate(R.layout.query, null); ViewPager mViewPager = (ViewPager) query_View .findViewById(R.id.viewpager); TitlePageIndicator mTitlePageIndicator = (TitlePageIndicator) query_View .findViewById(R.id.titles); QueryManageFragmentPager mQueryManageFragmentPager = new QueryManageFragmentPager(); mViewPager.setAdapter(mQueryManageFragmentPager); mTitlePageIndicator.setViewPager(mViewPager); mTitlePageIndicator .setOnPageChangeListener(new IndicatorOnPageChangeListener()); DictionaryDataCenter.instance(mContext).clear(); mQueryManageFragmentPager.notifyDataSetChanged(); mTitlePageIndicator.notifyDataSetChanged(); new QueryAsyncTask(mContext, mTitlePageIndicator, mQueryManageFragmentPager, word).execute(); dialog.setTitle(word); dialog.setContentView(query_View); dialog.show(); default: break; } } }