2012-04-09 10 views
1

文字列に関連付けられた整数値を、R.stringファイルに表示するTextViewコントロールから表示したい。R.stringからTextViewの文字列IDを取得する

だから、私はMyTextViewとのTextViewと呼ばれていると私は私がしたいことは、GetStringId(のようなものを私にMyTextViewの文字列IDを与えるいくつかの関数を作成することで、今、この

MyTextView.setText(R.string.MyString); 

としての文字列を関連付けられていますMyTextView)。たぶん、TextViewパッケージに既にこれが実装されていて、見つけられないかもしれません。アプリケーションに複数の翻訳を追加するにはあなたの助け

おかげ

+0

正しく理解すれば、 'GetStringId(MyTextView)'メソッドは 'R.string.MyString'(または関連する整数)をあなたのケースに返しますか? –

+0

まさに!それは私が欲しいものです – ali

+0

これはアーカイブが簡単なのかどうか分かりませんが、どのような目的のために必要ですか? –

答えて

1

Android Docsに説明したように、あなたは、「言語修飾-リソースを」使用する必要があります。

基本的には、あなたのres/values/strings.xmlファイルにフォールバック言語(英語の場合もあります)の文字列を追加します。

スペイン語などの他の翻訳は、指定された言語修飾子(ISO 639-1で指定)を使用して、言語限定リソースディレクトリに移動します。スペイン語の場合、これはres/values-es/strings.xmlになります。

Androidは現在のデバイス言語をチェックし、対応するlanguage-qualifierで翻訳を検索し、そのファイルで指定された文字列を自動的に使用します。対応する言語修飾子を持つフォルダが見つからない場合は、修飾子なしのフォルダ(例: "fallback" -language)を使用します。

これはAndroidからのサービスです。対応する言語対応のフォルダに対応する翻訳を入れるだけで、Androidは残りの部分を処理します。あなたが簡単にあなたが望むないのTextViewにテキストを設定するための独自の機能を実装することができinternationalisation in android

+0

使用したstrings.xmlファイルをプログラムで変更することはできますか? – ali

+0

する必要はありません。デバイス言語が変更された場合、Androidが自動的に行います。 –

+0

O.K.おそらくデスクトップ開発者として、私はデスクトップアプリのようなAndroidアプリを扱うことで多くの間違いを犯します。したがって、アプリケーションを「内部から」変更するためのボタンを追加する必要はありません。なぜなら、ユーザーがそれをやりたいのであれば、O.S全体の言語を変更する必要があるからです。 – ali

1

また、この古い質問を参照してください。テキストを設定するための

機能で
textview.setText(R.string.my_text); 
    textview.setTag(new Integer(R.string.my_text)); 

、その後、(文字列IDを取得するための)第二の機能では、このような何か:単にような何かを

return ((Integer)textview.getTag()).intValue(); 

を、以下のドキュメントを読んで二つの機能:

http://developer.android.com/reference/android/view/View.html#setTag() http://developer.android.com/reference/android/view/View.html#getTag()

+0

はい、そうすることができます。 – ali

関連する問題