2017-06-15 107 views
-2

假設我在的strings.xml:如何在Android中通過字符串值查找資源字符串?

<resources> 
    <string name="a">A value</string> 
    <string name="b">Another value</string> 
</resources> 

而且我想擺脫一個字符串值「值」或「另一個價值」。在運行時它可能是「a」或「b」,但我無法控制它。

因此,讓我們說,在某些時候,字符串myString =「a」。我怎樣才能把「A值」放在一個String局部變量中?

+1

'String yourString = getResources()。getString(R.string.a);' – Ibrahim

回答

1

可以使用的switch-case:

private String getValue(String valueOf) { 
    int resourceVal = 0; 
    switch(valueOf) { 
     case "a": 
      resourceVal = R.string.a; 
      break; 
     case "b": 
      resourceVal = R.string.b; 
      break; 
    } 
    if (resourceVal != 0) { 
     return getResources().getString(resourceVal); 
    } 
    return ""; 
} 
+0

我想我會留下你的解決方案。我認爲Android框架在這種情況下有一個特殊的方法。 – cszoltan422

1

在您的活動類型R.string.中按alt+enter 它會顯示可用字符串。

R.string.a 
R.string.b 

請回信告訴我它是否有幫助。如果沒有,請標記爲回答和給予好評;)

同時參考文檔,請參見下面的

https://developer.android.com/guide/topics/resources/string-resource.html

+0

但是我遇到的問題是我不知道我需要哪一個。我從Web服務獲取數據,並獲得許多其他數據的ID。用這個給定的String值,ID,我必須從這個strings.xml中獲取正確的字符串。有時它可能是「a」,另一次是「b」或許多其他值。 – cszoltan422

+0

如果你能告訴我一些代碼 –

+0

這將是有幫助的,這是一個邏輯問題,但我知道什麼可能可能返回的API然後你可以設置一個像這樣的標誌 if(id == 1){ R.string.a } –

0
String string = getString(R.string.yourStringName); 
0

鏈接那麼這是一個邏輯問題,但如果你知道什麼可能的回報該API,那麼你可以設置一個標誌,像這樣

if(id == 1) { R.string.a }

+0

是的,這是它會做的伎倆,但我想知道是否有任何優雅和簡單的解決方案,而不是舊的if-else if語句。 – cszoltan422

+0

如果它是一塊代碼創建類或只是使用開關案例 –

相關問題