java - 动态资源名称

标签 java android

我想通过 for 循环填充多个 TextView。 这不是实际的代码示例,但我希望它足以让您了解我正在尝试做什么。 我什至不确定这是否可行,但我希望有人找到了方法。

    TextView dataTV0 = (TextView) v.findViewById(R.id.dataTV0);
    TextView dataTV1 = (TextView) v.findViewById(R.id.dataTV1);
    TextView dataTV2 = (TextView) v.findViewById(R.id.dataTV2);
    TextView dataTV3 = (TextView) v.findViewById(R.id.dataTV3);
    TextView dataTV4 = (TextView) v.findViewById(R.id.dataTV4);
    TextView dataTV5 = (TextView) v.findViewById(R.id.dataTV5);

    String[] data; //This is acquired from another source

 for (int i = 0; i < 6; i++){
            (String.format("dataTV%d", i).setText(data[i]);
        }

最佳答案

我认为一个选择是 Resources.getIdentifier()

for (int i = 0; i < 6; i++){
    TextView textView = (TextView) findViewById( getResources().getIdentifier(String.format("dataTV%d", i), "id", getPackageName() ) )
    if(textView != null)
        textView.setText(data[i]);
}

更新

为了避免过多的函数调用:

TextView textView;
Resources rresources = getResources();
String packageName = getPackageName();

for (int i = 0; i < 6; i++){
    textView = (TextView) findViewById( resources.getIdentifier(String.format("dataTV%d", i), "id", packageName ) )
    if(textView != null)
        textView.setText(data[i]);
}

关于java - 动态资源名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37598926/

相关文章:

Java自定义注释默认值等于类字段名称

java - 更改 logback 级别并保存到 logback.xml

java - Android - 单击另一个类中的按钮后如何重新启动 MainActivity?

android - 有人可以帮助我混淆 android 程序吗?

java - ViewPager通用图像加载器如何实现

java - android/java 多点触控,什么是 & 在这种情况下是什么 >>?

android - 发布需要依赖的Android库

java - Solr 如何使用邻近搜索和通配符进行 eDisMax 查询?

java - 在给定对象的情况下填充 JTable

java - 递归 split 数组方法