2013-12-18 47 views
1

因此,我將使我的應用程序Multilingual,併爲不同的語言製作不同的String.xml。 我也改變了我的文字,如在.java中使用strings.xml值活動

String message = "Calling " + name; 
       Context context = getApplicationContext(); 
       int duration = Toast.LENGTH_SHORT; 

       Toast toast = Toast.makeText(context, message, duration); 
       toast.show(); 

String message = toastCalling + name; 

(從strings.xml中)

<string name="toastCalling">Calling</string> 

我現在面臨一個問題,那它顯然是INT,並且無法解析,或將toastCalling(Calling)的值更改爲「278172」(隨機數)

是否有辦法讓R.String.toastCalling的實際值(呼叫)

我曾嘗試:

String whatever = getResources().getString(R.string.toastCalling); 

但我不認爲這是現實。

提前致謝!

+2

你可能不認爲這是現實,但是這是你應該怎麼做了。 –

+1

通常你可以調用getString(R.string.blabla);但是是的,這就是你應該這麼做的方式,並不是那麼不方便;) –

+0

@TomG但是,讓我們說這個手機的語言是西班牙語。它將檢查string-es.xml。 「getResources()。getString(R.string.toastCalling);」去獲得SPANISH Xml? – Paramone

回答

6

如果您處於活動範圍內,您可以並且應該撥打getString(R.string.toastCalling);來接收字符串。如果您不在活動範圍內,則需要getResources,如您的示例中所示。這是它應該如何完成的。

順便說一句,你的三行吐司可縮短到一個:Toast.makeText(ctx, msg, Toast.LENGTH_LONG).show();

+0

是的,謝謝。我也有縮短的代碼。但我保留了一段時間,對於從事這個項目的其他人來說,「更容易」。 :)。我將使用getString();.謝謝! (可以在11分鐘內接受) – Paramone