新的Android/Java編碼器。試圖在Android應用程序中複製我在MS-Access中構建的項目。Java - 動態構建文本視圖ID
我有類似的命名TextViews佈局,像text10,text12,等等。在MS-訪問,我可以動態地收集引用建立這些名字:
For X = 10 To 15
Me.Controls("text" & X) = Null
Next
沒有要求陣列。 Java中的哪些結構可以實現相同的功能?
新的Android/Java編碼器。試圖在Android應用程序中複製我在MS-Access中構建的項目。Java - 動態構建文本視圖ID
我有類似的命名TextViews佈局,像text10,text12,等等。在MS-訪問,我可以動態地收集引用建立這些名字:
For X = 10 To 15
Me.Controls("text" & X) = Null
Next
沒有要求陣列。 Java中的哪些結構可以實現相同的功能?
您可以在運行時從res名稱獲取res id。所以,如果你的TextView有ID「text1」中,您可以通過使用得到的整數ID:
int id = getResources().getIdentifier("text1", "string", getPackageName());
TextView view = findViewById(id);
但只能作爲最後的手段這樣做,這是容易出錯的,緩慢的,有點反模式。
編輯由OP:不管什麼名稱參數總是返回0,但標記爲答案,因爲它導致下面的代碼完全按照我想要的,反模式或不。
TextView v = (TextView) findViewById(getResources().getIdentifier("tv" + a[i], "id", getPackageName()));
取而代之的是TextView
Id
領域使用其Tag
場。 String tag = (String)textView.getTag()
和textView.setTag(Object tag)
與tag instanceof String
那麼你可以找到TextView
通過Tag
使用元素的數組或列表。即使你可以按照你所說的方式去做,這是一個可怕的想法。不要在java中遵循訪問編程風格;有沒有人再使用VBA的原因 – nhouser9
也許有一天我會學習這一點,但現在找不到清楚的解釋如何用xml佈局中定義的TextView填充數組。 – June7