2011-09-05 88 views
0

我知道這是可能有縱向和橫向模式的佈局(這不是問題)。在縱向模式下說我要顯示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。在使用它之前可以檢查該字段是否爲空,但是會引入更多的邏輯來處理 - 所以它不易維護

回答

0

也許通過使某些文字瀏覽可見/不可見,重新使用? 你可以發現你使用的模式是:。getResources()getConfiguration()方向

我不知道是否真的回答你的問題,但..

最佳,

1

您可以在這兩種佈局創建和知名度=「水漲船高」隱藏起來,以保持一個有效的參考視圖

1

因爲你可能不想浪費不在你的佈局可見的資源環境和加工領域,除非這使得在你的應用感覺,你應該檢查null意見,這將給你和想法你正在處理的方向:

text1 = (TextView) findViewById(R.id.text1); 
text2 = (TextView) findViewById(R.id.text2); 

if (text1 != null) text1.setText("some text"); 
if (text2 != null) text2.setText("some other text"); 
+0

0123其實這是我現在正在做的,但我在多個地方使用textviews,並始終把非空檢查放在前面類似的東西吹了一下代碼,並使其不易讀 - 所以我認爲可能有另一種最佳做法。 當然,設置視圖隱藏的問題「浪費」資源,但在我的情況下,這不是一個真正的問題,所以我選擇了它,因爲我不需要任何額外的代碼邏輯。 – kmera