Xamarin Android Azure Mobile хороший дизайн

Я создаю приложение для Android через Xamarin Mono для Android, недавно я начал использовать мобильный сервис azure. Мне нужно руководство относительно архитектуры, которая должна быть разработана для этой функции: 3 фрагмента в моем приложении будут использовать базу данных мобильного сервиса, все они будут использовать одну и ту же таблицу. Элемент: фрагмент A — фрагмент списка — элемент запроса и заполните список результат.

Фрагмент B - фрагмент списка - запрос элемента и заполнение списка результатом (с другим макетом ListItem, чем список фрагмента A).

Фрагмент C - Фрагмент - Вставьте элемент в таблицу элементов.

В настоящее время у меня есть класс адаптера, реализующий BaseAdapter, который содержит таблицу, запрашивает ее и вставляет в нее, а затем заполняет список фрагментов A.

Однако таким образом я не могу показать другой макет ListItem во фрагменте B, поскольку адаптер уже настроен на определенный макет.

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

Я был бы рад, если бы кто-нибудь мог направить меня к такому руководству или объяснить, где должны храниться MobileServiceClient, MobileServiceTable и т. д. и где должны вызываться методы таблицы InsertAsync, ToListAsync....

Спасибо


person Nir Schachter    schedule 01.07.2013    source источник
comment
Очевидно, вы хотите отделить Adapter от Service. Задача Adapters заключается только в заполнении ListView, так что это своего рода помощник по презентации.   -  person Cheesebaron    schedule 01.07.2013
comment
@Cheesebaron спасибо, это то, что я пытаюсь сделать, я новичок в этом и не могу решить, каковы будут обязанности каждого класса, не могли бы вы привести простой пример класса службы и класса адаптера, работающих вместе   -  person Nir Schachter    schedule 01.07.2013


Ответы (1)


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

В качестве альтернативы (и я не уверен, насколько хорошо это будет работать, поскольку я никогда не пробовал) было бы сохранить 1 класс, но установить логическое значение, чтобы указать, является ли это представление A или представление B, которое вы хотите отобразить. Вам нужно будет изменить флаг фрагмента в соответствии с вашими конкретными требованиями.

person Christopher Richmond    schedule 22.02.2014