2014-01-07 3 views
1

В настоящее время я создаю приложение для API. Всякий раз, когда я хочу, чтобы собрать список объектов из API, следующий жизненный цикл применяется:Общие действия для разных объектов

  1. Начало деятельности
  2. Invoke GET запрос на base_uri/объекты
  3. Заполните объекты в ListView

Деятельность состоит из одних и тех же компонентов: ArrayAdapter, ProgressBar, асинхронной задачи и т. Д. Единственное, что может отличаться, - это активность, вызываемая при нажатии на объект в списке, потому что объекты иногда имеют разные свойства , Я хочу показать их wi го другого стиля.

Теперь мне интересно: возможно ли создать общий репозиторий активности? Такие как ...

public ActivityStore<T> extends ListActivity { 
    ... 
} 

где я пропускаю только путь API и ссылочный тип объектов для десериализации?

ответ

1

И кто будет звонить ActivityStore<Dog>? Ваш манифест? Нет, вы не можете этого сделать.

Но, если у вас есть что-то вроде DogStoreActivity extends ActivityStore<Dog>, тогда это прекрасно, если вы хотите определить такие виды деятельности.

+0

Не для первой деятельности, конечно. И для некоторых видов деятельности мне нужны конкретные реализации для определения типа объекта. – Acrotygma

+1

Итак, если у вас есть что-то вроде DogStoreActivity, то Extension ActivityStore , то это прекрасно. – Snicolas

-1

Вы можете сохранить только одно действие со списком и различными адаптерами для разных типов данных.

Создайте один AsyncTask, чтобы получить данные с сервера и установить соответствующий адаптер на ListView.

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

+0

'public class MyActivity {private Adapter1; частный адаптер2; частный адаптер 3; частный адаптер4; '... Какой беспорядок. – Acrotygma

Смежные вопросы