1

我有一个抽象类,其中包含设置标题文本的方法。看起来像:

TextView header = (TextView) findViewById(R.id.hTitle);
header.setText(getString(this.getHeaderStringID()));

此时,覆盖抽象 getHeaderStringID() 的方法返回整数,例如 0x7f040001。1 我想知道是否有办法利用串联或类似的方法来实现这一点:

header.setText(getString(R.string.!getHeaderStringID!));

在所需的情况下,getHeaderStringID 将返回类似“sAboutHeader”的字符串

2 我是 Java 新手 - 我可以摆脱创建标头对象。如果我不这样做,eclipse 验证器会说找不到合适的方法并且不允许我启动应用程序。

4

1 回答 1

1

如果我理解正确,我认为你应该使用反射:

try {
        Field idField = R.String.class.getDeclaredField(getHeaderStringID());
        int value = idField.getInt(idField);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    } 

value 变量可以作为 getString() 函数的输入。

于 2012-04-06T10:58:59.410 回答