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

Fil*_*eOS 1 java android getstring

有没有办法以编程方式更改R.string?因为它抛出了一个错误.

基本上我想这样做: String parkAdd = getString(R.string.stg_ParkAddress_+id);

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

我试图这样做但不起作用:

String parkAdd = getString(R.string.stg_ParkAddress_1);
parkAdd = parkAdd.replace("1",id);
if (!parkAdd.equalsIgnoreCase("")){
    tvParkAddress.setText(parkAdd);
}
Run Code Online (Sandbox Code Playgroud)

Gar*_*Bak 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;
}
Run Code Online (Sandbox Code Playgroud)

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

switch ( id ) {
   case 12345: 
      parkAddr = R.string.stg_ParkAddress_12345;
      break;
   case 12346: 
      parkAddr = R.string.stg_ParkAddress_12346;
      break;
}
Run Code Online (Sandbox Code Playgroud)