2014-03-30 47 views
0

所以在这里我有示例代码:Android:如何将字符串“R.string.aButton”转换为资源R.string.aButton?

TextView aDisplayw=(TextView)findViewById(R.id.display); 

protected void set(String resource) { 
    String toResource = "R.string" + resource;//How to convert it into resource? 
    aDisplay.setText(getResources().getText(forString)); 
} 

那么,有没有办法做到这一点?

+0

你试过[Java反射(http://docs.oracle.com/javase/tutorial/reflect/)? – xav

+0

我会读那个... – user3479037

+0

你的问题很不清楚。请忘记代码和“转换”(您不能将一个整数转换为另一个整数),而是以最简单的方式描述您正在尝试执行的操作。 – Simon

回答

3

使用Resources.getIdentifier

int resourceId = getResources().getIdentifier(
    resource, // Name 
    "string", // Type 
    getPackageName()); 
aDisplay.setText(resourceId); 
+0

非常感谢你!解决方案非常简单-_- – user3479037

+0

请注意,这很慢,不推荐。当然,有些时候你没有选择。但是,如果可以的话,最好避免这种方法。 –

+0

@JamesMcMurray - 你是完全正确的,尽管如果你拥有的只是一个资源的名字,没有太多的选择。理想情况下,你只是想完全避免这种情况。 – ianhanniballake