2016-01-14 46 views
-1

在android中,getResource()方法可用於獲取在xml文件中聲明的資源。像:Android SET資源文件項目

<resources> 
<string name="sample_1">Sample 1</string> 
<string name="sample_2">Sample 2</string> 
<string name="sample_3">Sample 3</string> 
<string name="sample_4">Sample 4</string> 
<string name="sample_5">Sample 5</string> 
</resources> 

,我想sample_1文本類我這樣做:

getString(R.string.sample_1); 

因此,獲得的方法是有訪問他們,但這裏是設置方法。我在互聯網上搜索了很多,但沒有找到有用的東西。在運行時通過java設置字符串和顏色資源的方法是什麼。互聯網是充滿例子是這樣的:

TextView ab = findviewbyid(........); 
ab.setText("bla bla"); 

我不想這樣,我想資源文件項中直接更改,如:

setResouces(R.color.primarycolor) to #00000 

有沒有像上面的解決方案?

+1

沒有** set **方法,因爲資源**不能寫入**。您可以使用其他方法,例如將虛擬機保存到SharedPReferences或數據庫中。或者存儲中的其他文本或xml文件。 –

+0

我認爲沒有設定方法,沒有必要。你爲什麼需要這個?描述您的使用案例,並且可能還有針對您的問題的另一個解決方案。 –

+1

對不起。不可能。 – Rohit5k2

回答

0

我想沒有setResources方法。你可以得到的字符串資源通過以下方式動態

Resources res = getResources(); 
String text = String.format(res.getString(R.string.sample_1)); 


TextView ab = findviewbyid(........); 

//要string.xml設定值

ab.setText("text"); 
+0

我已經知道這一點,並顯示在問題 –

0

雖然沒有這樣的方法來設置的資源,但你可以在創建資源運行時使用您的build.gradle

buildTypes { 
     def var = ""; 
     debug { 
      var = "debug" 
      buildConfigField "String", "BUILD_DATE", "\"12345\"" 
      resValue "string", "buildTime", "12345678" 
      } 
} 

添加類似的代碼到你的build.gradle當你建立你的應用程序將創建一個字符串資源。

+0

解釋這一點更多 –

+0

這是在構建應用程序時使用您的gradle創建資源的一種方式。它將創建名稱爲「buildTime」的字符串資源,其值爲「12345678」。構建應用程序之後 – Joe