Я знаю, что возможно иметь макет для портретного и ландшафтного режима (это не проблема). Скажем, в портретном режиме я хочу отобразить 3 текстовых просмотра (на самом деле у меня есть 3 отдельных графика, по одному на каждую ось xyz), а в альбомной ориентации я хочу только один текстовый просмотр (в моем случае один график, который содержит все 3 оси), все их представления их собственный идентификатор.
Теперь в соответствующем упражнении как настроить элементы управления пользовательским интерфейсом? Потому что в ландшафтном режиме есть только одно текстовое представление, тогда как в портретном режиме я получил 3. Так что, когда я нахожусь в портретном режиме, я могу писать только что-то в текстовом представлении 1, 2 и 3, но ничего в текстовое представление ландшафта, и наоборот.
Проверка вручную, находится ли здесь элемент управления пользовательского интерфейса (не ноль), не может быть правильным решением, верно?
1007 * например *
Скажем, в портретном режиме у меня есть просмотр текста с идентификатором 'text1' и в альбомной ориентации с 'text2'.
Теперь в методе создания действия я делаю следующее:
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
text1.setText("some text");
text2.setText("some other text");
Я всегда получу NullPointerException
, потому что в любом случае одно из текстовых представлений не существует. Можно было бы проверить, не является ли поле пустым, прежде чем использовать его, но при этом появилось бы больше логики, чтобы позаботиться о нем, - поэтому оно становится менее обслуживаемым