Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2017-06-29 | 164 |
5.00
из
|
Заказать работу |
|
|
История переводов, избранные переводы, а также оффлайн переводы должны где-то храниться. Самое верное для этого решение, хранить все это в базе данных.
База данных в Android представлена в виде SQLite.Для удобной работы с БД был написан модуль, имеющий методы:
· reset () - Метод очистки БД
· insert() - Метод помещающий результат перевода в БД
· setIsFavorite() - Метод добавляющий/убирающий в избранное перевод
· getHistory() - Метод возвращающий историю всех переводов.
· getTranslate() - Метод возвращающий перевод для слова/предложения (Оффлайн переводчик)
· dbCount() – Метод возвращающий кол-во строк в БД
Листинг основных методов:
/**
* Метод помещающий результат перевода в БД
* @param result Результат перевода в виде TranslateResultModel
* */
public void insert(TranslateResultModel result)
{
SQLiteDatabase dataBase = getWritableDatabase(); /** Открывает экземпляр базы данных */
ContentValues contentValues = new ContentValues(); /** Формирую сроку */
contentValues.put(FROM_TEXT,result.from);
contentValues.put(TO_TEXT,result.to);
contentValues.put(LANG,result.lang);
contentValues.put(IS_FAVORITE,(result.favorite)? 1: 0);
dataBase.insert(TABLE_RESULTS,null,contentValues); /** Добавляю в бд */
dataBase.close();
}
/**
* Метод добавляющий/убирающий в избранное перевод
* @param id ID результата перевода в БД
* @param state Значение
* */
public void setIsFavorite(int id, boolean state)
{
SQLiteDatabase dataBase = getWritableDatabase();
Cursor c = dataBase.query(TABLE_RESULTS, null,"_id = " + id,null,null,null,null,null);
if(c.moveToFirst()) {
do {
ContentValues contentValues = new ContentValues();
int idFrom =c.getColumnIndex(FROM_TEXT);
int idTo = c.getColumnIndex(TO_TEXT);
int idLang = c.getColumnIndex(LANG);
contentValues.put(FROM_TEXT,c.getString(idFrom));
contentValues.put(TO_TEXT,c.getString(idTo));
contentValues.put(LANG,c.getString(idLang));
contentValues.put(IS_FAVORITE,(state)? 1: 0);
/** Обновляю БД */
dataBase.update(TABLE_RESULTS,contentValues,"_id = " + id,null);
}
while (c.moveToNext());
}
}
/**
* Метод возвращающий историю всех переводов.
* @param text Текст перевода. Может отсутствовать,но тогда будет возвращены все значения
|
* @param favorite В избранном
* */
public ArrayList<TranslateResultModel> getHistory(String text, boolean favorite)
{
ArrayList<TranslateResultModel> results = new ArrayList<>();
SQLiteDatabase dataBase = getReadableDatabase();
Cursor c = null;
String filter = '%' + text + '%';
if(favorite) {
if (TextUtils.isEmpty(text))
c = dataBase.query(TABLE_RESULTS, null, "_favorite=1", null, null, null, null, null);
else
c = dataBase.query(TABLE_RESULTS, null, "_from LIKE (?) OR _to LIKE (?) AND _favorite=1"
, new String[]{filter,filter}, null, null, null, null);
}
else{
if (TextUtils.isEmpty(text))
c = dataBase.query(TABLE_RESULTS, null, null, null, null, null, null, null);
else
c = dataBase.query(TABLE_RESULTS, null, "_from LIKE (?) or _to LIKE (?)"
, new String[]{filter,filter}, null, null, null, null);
}
if(c.moveToLast()) {
do {
int idFrom =c.getColumnIndex(FROM_TEXT);
int idTo = c.getColumnIndex(TO_TEXT);
int idLang = c.getColumnIndex(LANG);
int idFavorite = c.getColumnIndex(IS_FAVORITE);
int idID = c.getColumnIndex(KEY_ID);
results.add(new TranslateResultModel(c.getString(idFrom),c.getString(idTo),
c.getString(idLang),(c.getInt(idFavorite) == 1),c.getInt(idID)));
}
while (c.moveToPrevious());
}
dataBase.close();
return results;
}
/**
* Метод возвращающий перевод для слова/предложения (Оффлайн переводчик)
* @param text Текст перевода.
* @param lang Язык перевода
* */
public ArrayList<TranslateResultModel> getTranslate(String text, String lang)
{
ArrayList<TranslateResultModel> results = new ArrayList<>();
SQLiteDatabase dataBase = getReadableDatabase(); //Открывает экземпляр базы данных
Cursor c = null;
c = dataBase.query(TABLE_RESULTS, null,"_lang=\"" + lang + "\" and _from=\"" + text + "\""
, null, null, null, null, null);
if(c.moveToFirst()) {
do {
int idFrom =c.getColumnIndex(FROM_TEXT);
int idTo = c.getColumnIndex(TO_TEXT);
int idLang = c.getColumnIndex(LANG);
int idFavorite = c.getColumnIndex(IS_FAVORITE);
int idID = c.getColumnIndex(KEY_ID);
results.add(new TranslateResultModel(c.getString(idFrom),c.getString(idTo),
c.getString(idLang),(c.getInt(idFavorite) == 1),c.getInt(idID)));
}
while (c.moveToNext());
}
dataBase.close();
return results;
}
|
|
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!