2011-09-17 22 views
7

說我已經動態生成了一些LinearLayout的數量,全部使用不同的標籤。如何查找ViewByTag?

for (int i = 0; i <= 5; i++) 
{ 
     final LinearLayout LinLayBtn = new LinearLayout(this); 
     LinLayBtn.setTag("id"+String.valueOf(i)); 
     ... 

現在我需要以某種方式通過它們從不同的方法標記數字訪問此佈局。

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

什麼是最好的方法來做到這一點?

謝謝!

+0

我會以字母作爲前綴標籤,不知道是否只有數字標籤標識符根本沒有錯...... –

+0

完成。 :)但仍然,我應該如何訪問它呢? – Roger

+0

如果您創建了Views,您爲什麼需要找到它們,那麼您已經知道它們了。 –

回答

8

你是否試過這種方法,發現它有問題?

你需要,當你設置的標籤,使這條線

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

匹配您使用的命名方案。所以,你會想這樣的事情在你的榜樣:

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("id1"); 

如果您需要做很多這樣的查找,雖然它很可能是一個更好的辦法來存儲陣列中的視圖引用,而你正在創建它們,以便你不必擁有所有的findView調用。或者像@Muhammad建議並使用parent.getChild(index i);

+0

http://developer.android.com/reference/android/view/View.html#findViewWithTag%28java.lang.Object%29 findViewWithTag()是View類的真正方法... – FoamyGuy