我正在尝试更改资源的价值,但很多帖子说你不能改变,我想如果你能,但不知道怎么做。
在Xml中我有这样的东西:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<integer name="textSize">11</integer>
</resources>
获取值
int update_str = this.getResources().getInteger (R.integer.textSize);
但改变它?
???
我可以获取所有文本视图并单独更改参数,但如果我们在每个页面上有1000个文本视图,我认为它对%cpu硬件有点强迫和激烈。
答案 0 :(得分:2)
这不受支持,而不是您应该处理更改TextViews
的值的方式。资源在您的APK中是最终的,如果您想更改TextViews
中的文字,您可以定义所需的所有资源并将其传递给代码中的TextView
,并按照您所描述的getResources()
检索它们。 1}}。
答案 1 :(得分:0)
该值在应用程序源文件中是硬编码的,因此在运行时期间绝对无法更改。
如果您希望在运行时更改该值,则应将该值保存在SharedPreferences中,并在每次需要时从该处获取(尽管这意味着您无法在XML中使用它,只能在Java中使用它) )
答案 2 :(得分:0)
但许多帖子说你无法改变
这是因为你不能! xml值在apk中是最终的设计。
如果我们在每个页面上有1000个文本视图,我认为它有点被迫 急剧来到%cpu硬件
我认为在任何页面上都有1000 TextView
不是一个好主意。但即使你必须这样做,除了改变String
的最终价值之外,还有许多程序方法可以实现这一目标。
例如,您可以与所有文本视图共享单个对象引用,此对象将具有字符串的NON最终实例,您将可以放弃操作。阅读MVC以了解这个想法。