新的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