Действительно. Так же нет смысла валить в резюме все навыки и места работы - лучше написать все под конкретную вакансию. Хотя у меня был случай, что меня пригласили как раз потому, что в резюме, помимо софтовой разработки, была упомянута хардварная
Денис Каракчиев: разобраться, безусловно, стоит. Но - как будет время и настроение. Сдвиги и другие битовые операции это низкоуровневое программирование, я с этим сталкивался в embedded - FPGA и микроконтроллерах. В Java некоторые алгоритмы оптимизируются сдвигами, криптография кое-какая... Но в "повседневной жизни", в оснобенности Android это не нужно.
Денис Каракчиев: да меня просто поражают любители совокупляться с инструментом, вместо того, чтобы работать ) после Java и IDEA я забыл кресты и отвратное поделие VS, как страшный сон, а сейчас перевожу бэкенды на Go и доволен ещё больше. А внутреннее устройство - что оно даст? Да ничего. Я знаю внутреннее устройство процессора, я ради интереса писал систему команд, процессорный симулятор программный, реализацию на FPGA, ассемблер... хотел компилятор, но руки уже не дошли, работа. В общем, ничего мне это не дало кроме неплохо проведенного времени xD
Chvalov: ну для начала стоит заметить, что правильное решение может быть громоздким и не стоит забивать гвозди микроскопом. В вашем случае вы можете задавать значения спиннера просто массивом строк типа String []baudRate = {"9600", "19200", ... } . Далее сделать Listener, который будет при изменении позиции спиннера писать значение в SharedPreferences, а в onResume формы можно читать это значение и устанавливать спиннер в нужную позицию.
А можно и через базу данных, но тогда желательно:
1. Вынести схему базы данных в отдельный класс
2. Вынести методы работы с бд в Helper
3. Запросы к бд не следует выполнять в UI потоке, т.к. они могут тормозить отклик интерфейса. Для асинхронных запросов в бд в андроиде есть специальный класс - Loader (эту тему надо гуглить отдельно)
4. Нет смысла гонять данные между курсором и ArrayAdapter, используйте CursorAdapter. Он работает с БД напрямую.
5. Если вы грузите из таблицы несколько полей, под них лучше создать объект-POJO с нужными полями, геттерами-сеттерами. Это просто кусочек парадигмы MVC (часть model). Данные объекты потом проще сериализовывать и вообще передавать туда-сюда при нужде. Хотите подробнее, погуглите тему ORM.
Артем Воронов: Почитал про правила подробнее. Вероятно, ограничение обходится пунктом "продажа цифрового контента, который может использоваться вне приложения" - если клиент, скажем, доступен так же и в браузере. Во всяком случае эту Xsolla я видел в нескольких популярных приложениях и их не удаляют...
Анатолий: Если у вас бывают проблемы с доступом к контексту приложения, можно использовать синглтон Application (почитать об этом можно, например, тут: ru-code-android.livejournal.com/4594.html). Так же учитывайте, что в будущем у вас могут возникнуть проблемы с совместимостью схемы базы данных. То есть если в версии n + 1 вы схему измените, а пользователь решит восстановить базу, вы наткнетесь на Exception. Т.е. обратно скопировать не всегда получится. Гуглите тему апгрейда схем баз данных, если данная ситуация будет возможна.