2015-04-19 46 views
0

我试图更改资源的值,但许多帖子都说不能更改,我认为如果可以,但不知道如何。以编程方式更改资源(int/strings/styles/etc)的值

在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); 

而是要改变它?

??? 

我可以得到所有的textviews并单独更改的参数,但如果我们必须在每一页上1000个textviews,我认为这是一个有点勉强和急剧的%CPU硬件。

+0

具有1000个文本视图的布局......这个应用程序注定要 – jb15613

回答

2

这不被支持,而不是您应该如何处理更改TextViews的值的方式。如果您想要更改TextViews中的文本,则资源在您的APK中是最终的,您可以定义所需的全部资源并将它们传递到代码中的TextView,如getResources()所述,检索它们。

+0

然后,因为我可以加载资源,我的TextView,然后改变它?但只做1次,(我不想为1000个文本视图改变,对%cpu很重) – Calimbo

+0

重要的原因是因为在一个布局中有1000个“TextViews”,试着降低这个数量。在cpu上更改'TextView'的文本不是很密集。 – AlexWalterbos

+0

还有密集的不断变化的网页回前进后退前进.......,我用这个功能:http://stackoverflow.com/questions/10766716/set-font-for-all-textviews-in-活动 – Calimbo

0

该值在您的应用程序源文件中被硬编码,因此在运行时绝对无法更改。

如果您希望在运行时更改该值,您应该将该值保存在SharedPreferences中,并在每次需要时将其保存(尽管这意味着您不能在XML中使用它,只能在Java中使用它)

+0

我使用java和XML和Works :) – Calimbo

0

但很多帖子说你不能改变

这是因为你不能! xml值在你的apk中是最终设计的。

,如果我们在每一页上1000个textviews,我认为这是一个有点勉强和 激烈的%CPU硬件

我不认为这是一个好主意,有1000 TextView上任何页面。但即使你必须这样做,除了改变String的最终价值之外,还有许多编程方法可以实现这一目标。

例如,您可以与所有textviews共享一个对象引用,该对象将具有一个字符串的非最终实例,您将可以操作。阅读关于MVC了解这个想法。