1

更多代码 - 这里创建的R.string.c#### - c.####字符串是我想作为 setText 运行的预定义字符串。

int Q1 = question1.getmCounter();
int Q2 = question2.getmCounter();
int Q3 = question3.getmCounter();
int Q4 = question4.getmCounter();

int qTotal = Q1 + Q2 + Q3 + Q4;
String Test5 = "R.string.c" + qTotal;

这就是我现在得到我想要喂的“字符串”的方式。

    textOut = (TextView) findViewById(R.id.ChmpNametxt);
    textOut.setText(Test5);

这就是我想喂它的地方。

4

1 回答 1

2

您可以使用“getIdentifier”方法访问资源。它允许访问包的任何资源:

getResources().getIdentifier("c1123", "string", this.class.getPackageName());

您可以在第一个参数中传递任何变量,这对应于您的字符串的名称。第二个参数指定在哪些资源中搜索它(字符串、可绘制、布局......)。第三个参数是应用程序的包名。它指定使用哪个“R”。在您的情况下,您想查看应用程序中包含的资源(“R”)。

编辑:此方法返回一个 int,对应于您要查找的资源的 ID,例如 R.string.c1123

Edit2:这个 int 然后应该用作 setText 函数的参数。

所以完整的代码是:

int resId = getResources().getIdentifier("c" + qTotal, "string", this.class.getPackageName());
textOut.setText(resId);
于 2012-05-07T21:52:47.417 回答