我想/values/
从 Java 活动文件中编辑目录字符串。
它应该是这样的:
String new_value = "hello";
R.string.string_name = new_value;
new_value = "bye";
R.string.string_name = new_value;
但它不起作用。
这是因为我想编辑字符串,然后开始一个新的活动,然后打开字符串。我该怎么做?
根据我对 SO 所做的一些研究。如何在运行时更改 R.string.some_variable?看来您尝试做的事情是不可能的。R 由 SDK 工具在开发时生成。
R.string.string_name
是一个Integer
. 它不能等于字符串!
R.string.string_name
每次对它们进行更改时,都会使用 SDK 生成的文件映射到实际使用的地址。所以这是不可能的。
顺便说一句,当您可以传递带有意图的字符串时,我无法理解您为什么要这样做。像这样:
Intent intent = new Intent(getApplicationContext(), NewActivity.class);
intent.putExtra("string1", new_value);
startActivity(intent);
然后像这样从新活动中读取值:
Intent intent = getIntent();
String new_value = intent.getStringExtra("string1");
字符串资源为您的应用程序提供带有可选文本样式和格式的文本字符串。
您可以使用 getString(int) 或 getText(int) 来检索字符串。getText(int) 将保留应用于字符串的任何富文本样式。
String string = getString(R.string.hello);
无论如何,xml 文件中的字符串应该是静态的。如果您的应用程序必须支持不同的语言怎么办?
您的问题的解决方案是在您提供的 Intent 中发送一个额外的值以在活动之间切换。
如果您只需要特定 Activity 的特定字符串,则应创建另一个静态字符串。