Адаптеры как внутренние занятия или самостоятельные занятия? - PullRequest
2 голосов
/ 24 января 2012

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

Кажется, что большая часть документации по Android и проектирование объектов подталкивают вас к созданию множества внутренних классов.AsyncTask любит загружать данные прямо в Views.Адаптерам нравится иметь доступ к LayoutInflator.

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

Я также обеспокоен написанием кода, который будет казаться знакомым программистам, которых мы могли бы нанять в будущем.

Какие стандарты кодирования для Android?Каков «лучший дизайн» для приложения, которому нужно загружать почти все свои данные из Интернета, иметь пользовательский интерфейс, который работает на телефонах и планшетах (с различными действиями в каждом), с которым легко работать и расширять его в течение многих летприйти?

Ответы [ 2 ]

1 голос
/ 24 января 2012

Вы должны посмотреть на это на Как кодировать в Android.

И вы можете использовать внутренний класс или создать отдельный класс в соответствии с вашими потребностями. Например, когда все данные загружаются из Интернета в формате json, я всегда использую класс seprate со статическим методом, который возвращает jsonObject, а затем я могу вызвать этот метод в любом месте моего приложения и извлечь из него данные. Также я использую один внутренний класс asyncTask для выполнения различных задач в моей деятельности, таких как поиск и загрузка данных в listview, загрузка данных об изменении пользовательских настроек и так далее. В кастомном адаптере я всегда предпочитаю другой класс для них. С ними действительно будет легко работать. Надеюсь, это поможет.

0 голосов
/ 24 января 2012

Я спрашивал об этом раньше, и я так и делаю.

Если я собираюсь использовать адаптер много раз, я помещаю все свои адаптеры в пакет под названием "com.myapp.adapters". Что касается AsyncTask, я всегда использую асинктаски как часть действий.

Если у вас есть только короткий адаптер, который выполняет небольшую работу в деятельности, нет необходимости создавать отдельный файл класса для него. Просто вставьте это в активность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...