4

プログラムで変更したいstrings.xmlファイルにいくつかの項目があり、元々はsetText();呼び出しでそれを行っていましたが、今はアプリを別の言語に翻訳しようとしています。つまり、すべてを文字列に設定する必要があります。 xml ファイル。私のアプリのすべてのテキストをstrings.xmlに入れて、setText()関数呼び出しを使用する代わりに、文字列名への参照を通じてプログラムで変更することは可能ですか? たとえば、「GrandTotal」をどのように参照しますか?

<string name="GrandTotal">Grand Total:</string>
<string name="choose_prompt">Choose a Mode</string>
4

4 に答える 4

19

使用できますsetText(R.string.GrandTotal);

直接テキストを設定する可能性がない場合は、resId使用できますgetString(R.string.GrandTotal);

于 2012-05-09T10:52:43.817 に答える
6

resourceId と実際の int の混同を避けるために、次のようなステートメントを使用することもできます

String s = getResources().getString( R.string.grand_total );

しかし、ほとんどのUIメソッドでは、@Keyboardsurferが言ったように、オーバーロードはしばしばresourceIdsを直接渡すためのサポートを提供します

于 2012-05-09T10:55:19.030 に答える
1

この方法を試してください。お役に立てば幸いです。

setText(getResources().getString(R.string.GrandTotal));
于 2015-04-11T09:03:55.377 に答える
0

Acrivityで:

String str = getString(R.string.choose_prompt);

また

String str = this.getString(R.string.choose_prompt);
于 2012-05-09T11:04:28.057 に答える