Когда пользователь впервые открывает приложение, я хотел бы вставить в базу данных некоторые значения.Как вставить/обновить базу данных в соответствии с языком устройства
Вопрос 1: Как наилучшим образом вставить в базу данных в первый раз?
К настоящему времени я использую GreenDAO. Должен ли я продолжать использовать его или изменить?
Я также хочу вставить значения в соответствии с языком устройства. Если пользователь использует английский язык, поэтому должны быть вставлены английские значения. Если пользователь использует португальский язык, поэтому необходимо вставить португальские значения. И вот мы идем. Но если пользователь меняет язык на настройках Android, я также хочу обновить эти значения.
Вопрос 2: Как обновить базу данных после изменения языка устройства?
Эти значения могут быть удалены пользователем, поэтому я хочу обновить только значения, которые все еще вставлены.
Мой начальный класс для вставки:
public class CategoryList {
private final String mLanguage;
public CategoryList(String language) {
mLanguage = language;
}
public List<Category> get() {
final List<Category> list = new ArrayList<>();
switch (mLanguage) {
case "pt":
list.add(new Category(1L, "Passeio", -13388315));
list.add(new Category(2L, "Comida", -48060));
break;
default: // en
list.add(new Category(1L, "Walk", -13388315));
list.add(new Category(2L, "Food", -48060));
break;
}
return list;
}
}
Я не понимаю, как я буду обновлять только те значения, которые все еще вставлены.
Вопрос 3: Как обновить только значения, которые все еще вставлены?
Есть идеи? Благодарю.
Редактировать: У меня будет сотни значений (в моем случае Тип категории). Как вы можете видеть в коде выше, категория содержит больше столбцов, чем только имя.
Я хотел бы указать правильную категорию в соответствии с языком устройства при первом запуске.
Я бы хотел обновить эти категории, если пользователь изменит язык устройства в системе.
Я не вижу, как использовать res
, из-за этого я попытался использовать этот класс выше.
Как это сделать?
Почему вы не вставляете язык по умолчанию (английский или все, что хотите), а затем меняйте язык с системным языком, если хотите показать? –