新的android/java编码器。试图在Android应用中复制一个我在MS-Access中构建的项目。
我的布局具有相似的命名文本视图,例如text10,text12等。
For X = 10 To 15
Me.Controls("text" & X) = Null
Next
无需数组。因此,在Java中寻找可以完成相同功能的结构。
我想根据两个输入动态设置多个文本视图的背景颜色。一个是构建文本视图参考,另一个是一个状态指标,该指标将确定颜色。
这是一个调用setSubColor的过程:
public void Clear(MenuItem mi) {
puz.setText("");
sol.setText("");
for (int i=0; i<26; i++) {
setSubColor(aryA[i].charAt(0), 0);
到目前为止,我对setSubColor拥有的内容:
public void setSubColor (char c, int i) {
TextView v = (TextView) >>>dynamically reference v using name built with ("tv" + c)
if (i == 0) {v.setBackgroundColor(Color.TRANSPARENT);}
else {v.setBackgroundColor(Color.YELLOW);}
您可以在运行时从RES名称中获取RES ID。因此,如果您的TextView具有名称为" Text1",则可以通过使用:
获得整数IDint id = getResources().getIdentifier("text1", "string", getPackageName());
TextView view = findViewById(id);
,但仅作为最后一个度假胜地这样做,它容易出错,很慢,有点像抗模式。
编辑OP:不管始终返回0的名称参数,但标记为答案,因为它导致了以下代码,该代码完全按照我的意愿(是否反pattern)起作用。
TextView v = (TextView) findViewById(getResources().getIdentifier("tv" + c, "id", getPackageName()));
而不是TextView
Id
字段使用其Tag
字段。 String tag = (String)textView.getTag()
和textView.setTag(Object tag)
带有tag instanceof String
然后,您可以通过Tag
TextView