package com.zhan_dui.dictionary.datacenter; import java.util.HashMap; import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.view.View; import com.zhan_dui.dictionary.db.DictionaryDB; /** * * @Description:Dictionary data pool,when a query finished,it add a dictionary * name and dictionary show view into this center. The * dictionary name ArrayList used to ViewPagerIndicator, * The dictionary view map will be used to * DictionaryView Fragment. * * DictionaryDataCenter * 是一个数据池,当一个单词查询由QueryProcessor查询完成后,他将所有的查询结添加到数据池中, * 而后由其他需要数据的地方去获取。 */ @SuppressLint("UseSparseArrays") public class DictionaryDataCenter { private static DictionaryDataCenter mDataCenter; private static HashMap<Integer, DictionaryDetail> mDictionaryViewMap = new HashMap<Integer, DictionaryDetail>(); private static int mLastPosition = 0; private static DictionaryDB mDictionaryDB; private static Context mContext; private class DictionaryDetail { public String mDictionaryName; public View mShowView; public DictionaryDetail(String dictionaryName, View showView) { mDictionaryName = dictionaryName; mShowView = showView; } } private DictionaryDataCenter(Context context) { mContext = context; mDictionaryDB = new DictionaryDB(mContext, DictionaryDB.DB_NAME, null, DictionaryDB.DB_VERSION); } public static DictionaryDataCenter instance(Context context) { if (mDataCenter == null) { mDataCenter = new DictionaryDataCenter(context); } return mDataCenter; } public void addWord(String word) { SQLiteDatabase sqLiteDatabase = mDictionaryDB.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("word", word); sqLiteDatabase.insert("word", null, contentValues); sqLiteDatabase.close(); } public String getPagerTitle(int position) { return mDictionaryViewMap.get(position).mDictionaryName; } public String getDictionaryNameByPosition(int position) { return mDictionaryViewMap.get(position).mDictionaryName; } public void clear() { mDictionaryViewMap.clear(); mLastPosition = 0; } public View getDictionaryViewByPosition(int position) { return mDictionaryViewMap.get(position).mShowView; } public void addDictionaryView(String dictionaryName, View dictionaryView) { mDictionaryViewMap.put(mLastPosition++, new DictionaryDetail( dictionaryName, dictionaryView)); } public int getDictionaryViewCount() { return mDictionaryViewMap.size(); } public void queryWord(String word) { } }