0

У меня есть приложение с навигационной панелью для перехода между различными экранами приложения. Некоторые из этих экранов просты и могут быть легко отображены фрагментом, а другие требуют, чтобы я извлекал данные с сервера и заполнял поля или список в зависимости от экрана.Android. Должен ли я использовать действия или фрагменты для моей панели навигации, если мне нужно загрузить данные.

Должен ли я использовать смесь фрагментов и действий на основе потребностей каждого экрана? Использование фрагментов приятно, потому что переход на экран не очень заметен, тогда как начинается новый вид активности. Есть ли какая-либо информация о передовых методах для ситуации, когда у меня есть информация, загружаемая асинхронно во время запуска этой активности? Я бы предпочел не использовать фрагмент для этой ситуации, так как фрагмент будет отображаться, и представление информации/списка будет заполнено после отображения экрана.

+0

В моем понимании, оба фрагмента и действия будут иметь такую ​​же проблему, если они будут отображаться перед вызовом Async для получения данных после отображения. У меня есть аналогичная ситуация в моем приложении, и я полагаюсь на локальную базу данных SQL для хранения ранее загруженной информации. Если процесс асинхронизации завершается первым, тогда он все равно покажет свежие данные. Другой пользователь увидит данные, когда они снова вернутся на этот экран. Не уверен, что это поможет. –

+0

@SachiinGupta Это помогает. Проблема в двух из моих экранов - это экраны поиска, поэтому я не могу предварительно загрузить данные заранее. –

ответ

-2

У вас есть несколько вариантов:

1) Используйте Bundle от Intent:

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2) Создайте новый Bundle

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString(key, value); 
mIntent.putExtras(mBundle); 

3) Используйте putExtra() метод быстрого доступа к намерениям

Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 
+0

Извините, мне, возможно, не было ясно, что я искал. Допустимо ли использовать действия при навигации по приложению через навигационную панель в нижней части экрана или есть способ использовать фрагменты без появления на экране информации о задержке при завершении загрузки? –

+0

, пожалуйста, введите код, чтобы я мог понять – user2423314

0

Хорошо, во-первых, использование фрагмента - очень хороший выбор, и я также использую фрагменты, когда я использую NavigationDrawer в своем приложении для загрузки данных, списка показа или любого другого вида макета. Вы также можете использовать AsyncTask в фрагменте, чтобы загрузить данные и отобразить их.

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