Я очень новичок в Android. У меня есть несколько кнопок, когда я нажимаю на них, я получаю список элементов. Независимо от нажатой кнопки, списки отображаются точно так же, единственное, что меняется - это удаленный url
, призванный заряжать элементы. Есть ли лучший способ, чем использовать фрагменты для этого? Или можно добавить параметр url
в методе getView каждого адаптера (я использую адаптер для каждого фрагмента)передовая практика при использовании фрагментов
ответ
Это зависит.
Вы не можете передавать дополнительные аргументы непосредственно в Adapter.getView(), но вы можете передать дополнительную информацию (например, URL-адрес или элементы, которые вы загрузили из этого URL-адреса), в качестве параметра конструктора в подкласс класса Adapter и получить доступ к этому изнутри реализации getView().
Из ограниченного количества деталей, которые вы предоставили, я предлагаю иметь один класс Фрагмента, обрабатывающий отображение вашего списка, и передачу URL-адреса для передачи данных из фрагмента в качестве аргумента в следующих строках:
public class MyListFragment extends Fragment {
private static String ARG_URL = "url";
public static MyListFragment create(String url) {
Bundle args = new Bundle();
args.putString(ARG_URL, url);
MyListFragment fragment = new MyListfragment();
fragment.setArguments(args);
return fragment;
}
...
}
Затем фрагмент может обрабатывать асинхронную загрузку данных и отображение списка.
Что касается наилучшей практики, я склонен скрывать часть создания/аргумента в статическом заводском методе, подобном этому, поэтому код, который хочет использовать фрагмент, не должен знать, как именно аргументы сортируются в Bundle, и вы можете обработать проверку аргументов, значений по умолчанию и т. д., если это необходимо.
- 1. Передовая практика преобразования мула
- 2. Именование флагов, передовая практика
- 3. Переплетная передовая практика
- 4. Передовая передовая практика, пользовательский десеррилизатор gson
- 5. инлайн и передовая практика
- 6. Атомная передовая практика
- 7. wcf подключение передовая практика
- 8. BigQuery потоковая передовая практика
- 9. Symfony 2: передовая практика
- 10. Java tryParseInt передовая практика
- 11. Передовая практика визуализации GWT
- 12. Передовая практика обработки SharedPreferences
- 13. Restful API, передовая практика
- 14. Java многопоточность - передовая практика
- 15. Строка постоянная ... передовая практика?
- 16. database/datamart передовая практика
- 17. java inheritance передовая практика?
- 18. Cassandra удаление передовая практика
- 19. Передовая практика: стандарты документации
- 20. Передовая практика обработки событий JavasScript?
- 21. AngularJS функции контроллера передовая практика
- 22. iOS login viewcontroller передовая практика
- 23. При использовании фрагментов Android?
- 24. Ошибка при использовании фрагментов
- 25. весна облако конфигурация передовая практика?
- 26. spring mvc @requestmapping передовая практика
- 27. Передовая практика - использование пакетов LiquiBase
- 28. Передовая практика для мобильных приложений
- 29. Передовая практика для пересылки ItemsSource
- 30. Быстрая передовая практика UIColor Extensions
спасибо, извините, если следующее довольно наивно, я не очень 'android'. У меня есть прослушиватель вкладок, поэтому, когда я нажимаю одну из вкладок, я вызываю 'фрагментTransaction.replace (R.id. $ some_id, new SomeFragment()). Commit();' am предполагается передать URL в этом экземпляре, а затем передать его в 'onCreateView', который делегирует ваш метод' create'? – Newben
По строкам фрагментаTransaction.replace (R.id. $ some_id, SomeFragment.create (targetUrlForThisTab)). Commit(); Затем вы можете получить доступ к URL-адресу в onCreateView() с помощью getArguments(). Get (ARG_URL). – Karsten