(Требуется объяснение) Не понимаю, что означает фрагмент кода

#android #android-fragments

#Android #android-фрагменты

Вопрос:

Я пытаюсь понять эту часть кода с 11.3 ЭТОГО САЙТА:

 if (fragment != null amp;amp; fragment.isInLayout()) {
  fragment.setText(link);
} else {
  Intent intent = new Intent(getApplicationContext(),
      DetailActivity.class);
  intent.putExtra(DetailActivity.EXTRA_URL, link);
  startActivity(intent);

}
  

На сайте говорится, что Detail Activity это вызывается, когда в макете нет других фрагментов. Что это значит? Разве в макете не всегда будет фрагмент?

Я думаю, что меня больше смущает, какой файл запускается первым, потому что я не уверен, как приложение узнает, какой макет использовать в случае книжной или альбомной ориентации. Есть ли в коде часть, которая сообщает приложению использовать определенный набор инструкций для каждой ориентации?

Спасибо, любая помощь приветствуется.

Ответ №1:

Это делается по папке. Если в папке layout-land или layout-port есть файл с тем же именем, он будет переключаться между ними при вращении, уничтожая старую активность и создавая новую. На самом деле воссоздание будет происходить всегда, но оно автоматически определит, какую версию использовать, если существует несколько XML-файлов с одинаковым именем.

Комментарии:

1. Хорошо, я думаю, что я постепенно начинаю это понимать. Итак, вы говорите, что при запуске приложения приложение ищет файл xml из layout или папку layout-port в зависимости от ориентации. Просто в дополнение к этому, какой XML-файл он будет запускать первым из папок макета (после определения, какой из них использовать)? Прямо сейчас у меня есть activity_detail.xml и activity_rssfeed.xml в моей папке layout / ports.

2. Какой бы вы ни указали в setContentView.

3. OOOOHHHHHHH СПАСИБО! Наконец-то все щелкнуло!