Как сохранить простую базу данных, доступную только для чтения, в приложении для Android?

#android

#Android

Вопрос:

Я ищу элегантное решение для следующей проблемы:

Приложение, над которым я работаю, подключается к какому-либо удаленному устройству, и, конечно, может возникнуть много различных проблем с подключением или удаленным устройством. Каждая проблема имеет свой собственный код ошибки. Когда удаленное устройство сообщает о проблеме, я хотел бы показать описание пользователю, а не только код ошибки. Дополнительным требованием является то, что описание должно быть локализовано.

Мое текущее решение, вероятно, самое простое — в ресурсах есть отдельный XML-файл со строками — код ошибки в качестве имени строки и описание в качестве значения.

Чтобы найти описание, я использую следующий код:

 try {
    description = getContext().getResources().getString(getContext().getResources().getIdentifier(item.getErrorId().toUpperCase(), "string", "com.mypackage"));
} catch (NotFoundException e) {
    description = getContext().getResources().getString(R.string.description_not_available);
}
 

Мне не нравится это решение, потому что оно загрязняет пространство имен strings (есть много возможных проблем) и использует перехват исключений.

Есть ли какой-нибудь лучший / стандартный способ справиться с этой проблемой?

Ответ №1:

Я предполагаю, что вы знаете о возможностях обработки этого в Android, как вы можете —

  1. Создание базы данных sqlite
  2. или используйте внешнюю базу данных sqlite
  3. Сохраните их в настройках.

Но все же я бы предположил, что метод, который вы использовали, на сегодняшний день является лучшим для вашего случая. Или дайте мне знать, с какими проблемами вы столкнулись, чтобы я мог предложить что-то лучшее.

Комментарии:

1. Да, я понимаю, что могу использовать базу данных SQLite, однако, насколько я знаю, Android не поддерживает готовые предварительно заполненные базы данных. Я нашел несколько внешних библиотек, которые могут это сделать, но это делает решение слишком сложным.

2. вы проверили вторую ссылку, которую я предоставил? в нем говорится, что вы можете использовать предварительно заполненные базы данных без внешних библиотек. Или у нас разные представления о «внешней базе данных».