#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, как вы можете —
- Создание базы данных sqlite
- или используйте внешнюю базу данных sqlite
- Сохраните их в настройках.
Но все же я бы предположил, что метод, который вы использовали, на сегодняшний день является лучшим для вашего случая. Или дайте мне знать, с какими проблемами вы столкнулись, чтобы я мог предложить что-то лучшее.
Комментарии:
1. Да, я понимаю, что могу использовать базу данных SQLite, однако, насколько я знаю, Android не поддерживает готовые предварительно заполненные базы данных. Я нашел несколько внешних библиотек, которые могут это сделать, но это делает решение слишком сложным.
2. вы проверили вторую ссылку, которую я предоставил? в нем говорится, что вы можете использовать предварительно заполненные базы данных без внешних библиотек. Или у нас разные представления о «внешней базе данных».