我知道这是可能有纵向和横向模式的布局(这不是问题)。在纵向模式下说我要显示3个textviews(其实我有3个不同的图形,每个轴一个XYZ),并在景观我只想要一个TextView的(在我的情况下,它包含了所有3轴一个图表),都在那里查看了他们自己的ID。Android的肖像VS景观
在相应的活动现在,你怎么设置的UI控件?由于在横向模式下,只有一个TextView的,而在纵向模式下我得到3.所以,当我在纵向模式来的。我只能写些东西在TextView的1 2和3,但没有到景观的TextView的,反之亦然。
手动检查,如果该UI控件是在这里(NOT NULL)不能正确的解决方案,对不对?
e.g
说,在纵向模式我有ID为“文本1”和一个景观以“文本2”一个TextView。 现在在活动的上创建方法,我做到以下几点:
text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);
text1.setText("some text");
text2.setText("some other text");
我会永远,因为在两种情况下textviews的一个不存在得到了NullPointerException
。在使用它之前可以检查该字段是否为空,但是会引入更多的逻辑来处理 - 所以它不易维护
0123其实这是我现在正在做的,但我在多个地方使用textviews,并始终把非空检查放在前面类似的东西吹了一下代码,并使其不易读 - 所以我认为可能有另一种最佳做法。 当然,设置视图隐藏的问题“浪费”资源,但在我的情况下,这不是一个真正的问题,所以我选择了它,因为我不需要任何额外的代码逻辑。 – kmera