我知道可以为纵向和横向模式设置布局(这不是问题)。说在纵向模式下我想显示 3 个文本视图(实际上我有 3 个不同的图形,每个轴 xyz 一个),而在横向模式下我只想要一个文本视图(在我的情况下,一个图形包含所有 3 个轴),所有视图都得到了他们自己的身份证。
现在在相应的活动中,如何设置 ui 控件?因为在横向模式下只有一个文本视图,而在纵向模式下我有 3 个。所以当我处于纵向模式时,我只能在 textview 1 2 和 3 中写一些东西,但在横向的文本视图中什么也没有,反之亦然。
手动检查 ui 控件是否在这里(不是 null)不能是正确的解决方案,对吧?
例如
说在纵向模式下,我有一个 ID 为“text1”的文本视图,而在横向模式下,我有一个 ID 为“text2”的文本视图。现在在活动的创建方法中,我执行以下操作:
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
text1.setText("some text");
text2.setText("some other text");
我总是会得到一个NullPointerException
,因为在任何一种情况下,其中一个文本视图都不存在。可以在使用之前检查该字段是否不为空,但这会引入更多需要处理的逻辑 - 因此它的可维护性较差