Привет, ребята, я разрабатываю экран в android.Iam, пишущий код для этого экрана, чтобы работать как в портретной, так и в ландшафтной ориентации. Вот мой портретный и ландшафтный XML - это разные, поэтому я использую разные XML файлы как для портретной, так и для ландшафтной ориентации. включал, что эти XML файлы в методе onConfigurationChanged(). В зависимости от изменения ориентации iam, включая этот конкретный XML файл и iam, используя только одно действие для этого, которое расширяет ListActivity. В книжной ориентации iam с использованием ListView, но в ландшафтной ориентации iam не используется ListView. Когда я изменяю свою ориентацию от "Портрет к пейзажу", он дает исключение, говоря, что у вашего контента должен быть ListView, чей идентификатор атрибута "android.R.id.list". Вот я понимаю проблему, которая в моем файле Ландшафтного XML не использовал ListView, поскольку я расширил ListActivity. Но я не хочу использовать ListView. Как я могу это преодолеть.
Я не уверен, что вы можете полностью избежать этой проблемы. ListActivity
абсолютно требует наличия в макете ListView
с идентификатором @android:id/list
(или android.R.id.list
в коде).
Один взлом, который вы можете попробовать, - это определить свой ландшафтный макет, чтобы он имел ListView
но заставлял ListView
иметь нулевую высоту. ListActivity
будет удовлетворен, и все же он не будет отображаться на экране.
Кстати, если вы не используете каталоги ресурсов, зависящие от конфигурации (res/layout-port
и res/layout-land
), вам следует. Структура автоматически привяжет правильный файл макета к используемому идентификатору макета, и вам не нужно выбирать между ними в коде. См. Раздел " Предоставление ресурсов".