以编程方式更改资源getString()

时间:2016-09-01 11:18:28

标签: java android getstring

有没有办法以编程方式更改R.string?因为它引发了错误。

基本上我想这样做: grep -oP '(?<= by )[^@]*' <<< "$change" name

因为我有根据ID更改的硬编码字符串。

我试图这样做,但没有工作:

.addAnnotation(AnnotationSpec.builder(SuiteClasses.class)
.addMember("value", "$T.class", testClasses.toArray()).build())

4 个答案:

答案 0 :(得分:5)

R.string.xxx实际上是一个常量,并且无法追加该值,永远不会找到该资源。您可以搜索R.java以查看应用的值:

public static final class string {
     public static final int about_open_source_heading=0x7f060013;
     public static final int about_open_source_list=0x7f060014;
}

如果你有依赖于特定值的硬编码字符串,也许你可以这样做:

switch ( id ) {
   case 12345: 
      parkAddr = R.string.stg_ParkAddress_12345;
      break;
   case 12346: 
      parkAddr = R.string.stg_ParkAddress_12346;
      break;
}

答案 1 :(得分:2)

无法在运行时更改字符串资源。您可以将该字符串保存在SharedPreference中,您可以对其进行修改和保存以供进一步使用。

答案 2 :(得分:1)

无法以编程方式编辑字符串资源,执行另一个类并将字符串放在此类中并在运行时访问。

答案 3 :(得分:0)

只需将其与tk

连接即可
id