2

好的,我没有很好地解释我的问题,所以这里修改了几次。

我有一个调查,调查产生一个整数。我将此数字转换为与存储在我的资源中的预设字符串相关的字符串文件名。根据对问题所做的选择,最后需要不同的字符串。

此代码生成所需的命令行;R.string.c####

    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;

此代码位于 onCreate 内部,用于为 TextView 生成内容。

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

现在我的概念是它将 Test5 读取为“R.string.c####”并加载所需的字符串。它不这样做,我想知道如何将 Test5 的内容放入命令行。

希望有人能帮我做麦芽..

提前致谢

-克里斯

4

2 回答 2

1

您已经在这里得到了正确答案:Creating Strings than can be used as Filepath - Eclipse / Android

在你的情况下:

String stringId = "c" + qTotal; //note: not the same as what you did with your Test5
int resId = getResources().getIdentifier(stringId, "string", getPackageName());
textOut.setText(resId);

还是我们误解了您对“命令行”一词的使用?

于 2012-05-07T23:34:17.850 回答
0

您需要获取文本的资源 ID,此代码为您获取资源 ID:

ContextWrapper cw = this.getContext();// how you get this can be different, but you need a ContextWrapper from somewhere to use.
int resId = cw.getResources().getIdentifier("c" + qTotal, "string", cw.getPackageName());

然后您可以使用带有 resId 变量的 textOut.setText 作为参数。

于 2012-05-07T23:33:58.347 回答