用于引用 textView 的 Android id 数组

标签 android arrays dynamic textview

我有一个包含 24 个 TextView 的屏幕,我想更改它们的值。我只需要更改每个文本字段中的值,以何种顺序并不重要。现在我的代码如下:

textView = (TextView) findViewById(R.id.textView1);
textView.setText(value1);
textView = (TextView) findViewById(R.id.textView2);
textView.setText(value2);
textView = (TextView) findViewById(R.id.textView3);
textView.setText(value3);
textView = (TextView) findViewById(R.id.textView4);
textView.setText(value4);
etc...

TextViews 的数量恒定为 24。我正在寻找循环解决方案,但是我遇到的问题是动态获取 R.id.textViewX 值 id。有没有一种简单的方法可以完成此操作,以便我可以按以下方式使用它:

// Somehow get textViewArray of textView id's //

for(int i=0;i<textViewArray.length;i++) {
  textView = (TextView) findViewById(textViewArray[i]);
  textView.setText(value[i])
}

我对在 Activity 类中动态创建文本字段的想法持开放态度,但正在寻找 XML 解决方案。我不确定这是否可以使用数组类来完成。我已经看到这是为@drawables 做的,但从来没有为 id 做过

重要的是要注意 textView 不在列表中。

最佳答案

使用 getIdentifier()方法:

for (int i = 0; i < 24; i++) {
     int id = getResources().getIdentifier("textView" + i, "id", getPackageName());
     TextView textView = (TextView) findViewById(id);
     textView.setText("Set text");
}

关于用于引用 textView 的 Android id 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17575660/

相关文章:

java - 将数组列表传递给 fragment ?

Java BitSet size() 行为

c# - 下拉列表的上一项.text

jquery - 从动态创建的列表项访问数据 ("")

java - Google Places Details 搜索 System.err

android - Unresolved Espresso 方法

java - 压缩数组

java - Android 上的 RethinkDB - 编译失败

android - 无法在 recyclerview 中获取行的圆角

c# - 动态数组 |展开对象 |使用压缩的初始化语法