Приложение вылетает при переключении на альбомную раскладку

У меня проблемы с настройкой ландшафтного режима в моем приложении.

У меня есть папка / res, которая содержит папку макета и папку области макета

layout
-----main.xml

layout-land
-----main.xml

Мой /layout-land/main.xml содержит элементы пользовательского интерфейса, отличные от /layout/main.xml. Как я могу соответствующим образом сопоставить каждый макет, когда пользователь переключился в альбомный режим и наоборот?

Я в основном показываю полноэкранный ImageView, когда пользователь переключается в альбомный режим. ImageView загрузит изображение из Интернета и отобразит его. Чтобы вернуться в портретный режим, нужно просто вернуться в мой портретный режим, в котором есть другой набор компонентов пользовательского интерфейса.

Я получаю сбой при переключении в альбомный режим:

, потому что я не могу получить идентификатор:

chartImageViewLandscape = (ImageView) this.findViewById(R.id.chartImageViewLandscape);

chartImageViewLandscape находится в / layout-land / main. Я удаляю все сеттеры и добавляю только ...

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

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

Я считаю, что конструкторы очень мало используются в примерах кода C #, и я думаю, что автоматические свойства и инициализатор объектов большая часть этого, поэтому у меня вопрос в том, почему команда разработчиков C # продвигает такие функции, а не уделяет больше внимания предоставлению функций, в большей степени продвигая передовые практики. В общем, я считаю, что писать плохой код слишком просто, и считаю, что можно сделать больше, помогая кодировщикам писать хороший код

8
задан terjetyl 3 September 2010 в 23:11
поделиться