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

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验证程序会说找不到合适的方法,并且不会让我启动应用程序。

最佳答案

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

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


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

关于java - Android字符串提取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10042403/

10-10 16:53