2015-04-19 45 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瞭解這個想法。