以编程方式更改资源 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 中,您可以对其进行修改并保存以供进一步使用。
有什么方法可以通过编程方式更改 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 中,您可以对其进行修改并保存以供进一步使用。