2012-02-08 48 views
1

重用textveiew有什麼好處嗎?代碼在不重用時更具可讀性。除了在創建新聲明時代碼更具可讀性之外,這兩種使用方式是否有區別?尤其是當有很多textviews重複使用textview vs新聲明

重用例如

TextView tv = (TextView) v.findViewById(R.id.tv1); 
tv.setText("tv1"); 
tv = (TextView) v.findViewById(R.id.tv2); 
tv.setText("tv2"); 

新的聲明例如

TextView tv1 = (TextView) v.findViewById(R.id.tv1); 
tv1.setText("tv1"); 
TextView tv2 = (TextView) v.findViewById(R.id.tv2); 
tv2.setText("tv2"); 
+0

我想有更少的內存消耗時重用,因爲我一次只有一個textview在內存中,但我有點找速度:) – Flexo 2012-02-08 08:47:42

回答

-2

都能跟得上的,不會在所有

+1

你基於什麼你的答案?你有鏈接到一個解釋這個問題的帖子嗎? – Flexo 2012-02-08 08:57:23

0

findViewById任何區別(..)是每次需要訪問TextView時都不希望執行的操作,因此建議初始化TextView

+0

嗯,問題是我有一個viewpager與包含5-10 textview的一些視圖,其中大多數都顯示靜態數據,我從服務器獲得,因此我需要在viewpager中我的instantiateItem方法中使用findViewById。我希望其中一種方法可以提高性能,並且任何事情都比沒有好 – Flexo 2012-02-08 08:53:44

+0

爲了達到性能目的,您應該緩存TextViews,以便您不必每次都執行findViewById(...) – 2012-02-08 08:57:55

+1

那麼,Android會處理緩存視圖本身,所以我不想幹涉這一點 – Flexo 2012-02-08 09:14:13

2

除了內存,如果你不打算在代碼中的任何地方使用tv(TextView Object),那麼第一種方法是更好的,否則第二種方法是好的。