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

Change Resource getString() programmatically

有什么方法可以通过编程方式更改 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);
}

只需将其与 id

连接起来
String parkAdd = getString(R.string.stg_ParkAddress) + id;

无法以编程方式编辑字符串资源,请执行另一个 class 并将您的字符串放入此 class 并在 运行 时间内访问。

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;
}

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