java - 用我自己的字符串覆盖 string.xml

标签 java android xml string

我试图覆盖 strings.xml 中所有自动解析的字符串,以便 android 确实使用我的字符串而不是 strings.xml 中的字符串,而无需更改 xml 文件中的语法。

我想使用在运行时下载的字符串并将它们显示在 native TextViews、按钮、工具栏等中。我的第一个想法是定义一个自定义 LayoutInflater.Factory 并在 View 膨胀后以编程方式设置文本、提示等。问题是 LayoutInflater 代码希望我自己膨胀 View ,而复制和粘贴膨胀逻辑似乎是一个坏主意。

我的第二个想法是包装 AttributeSet 并注入(inject)我自己的字符串,但我找不到方法来做到这一点。

有没有人有一种可行、可靠的方法来完成我正在尝试的事情?

最佳答案

当您将数据作为资源提供时,它无法在运行时修改。准确的说,res文件夹是不能用java代码修改的。

这也适用于 Strings.xml,即“Values”文件夹。

你能做的最好的事情就是创建一个字符串类并用它们来提供 textviewss 等。您可以访问此类并更改代码中的值并刷新布局(reinflate)以更改外观。

关于java - 用我自己的字符串覆盖 string.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42609018/

相关文章:

java - JAXB 无法将接口(interface)作为参数和返回类型处理

java - 使用 void 参数调用 Java 方法

android - toast 来了多次

c# - 使用 LINQ to XML 解析深层嵌套属性时遇到问题

xml - 调试/AndroidManifest 中的错误

xml - 从 xml 文件中剥离注释并漂亮地打印它

java - Android - 计算两个数字出现在单元格编号中的时间

具有高效删除(...)(或更新)的Java优先级队列

android - Proguard - 仅混淆一个类及其公共(public)方法

android - 根据条件查询获取行数