我试图覆盖 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/