2017-09-14 3 views
0

言語に関係なく、アプリで使用する必要があるデフォルトの文字列があります。Androidの「値」フォルダから文字列リソースを取得

アプリの言語とは独立しているはずだと私は文字列を異なる言語のstring.xmlファイルの中に入れませんでした。

myString.xml

<resources> 
    <string name="myStringResource">This text shall be available 
for the entire app no matter the language 
</string> 
</resources> 

しかし、今、私はこの文字列にアクセスすることはできませんよ。その代わり、私はそのように見ているvaluesフォルダ内の別のmyString.xmlファイルを、作成しました。

これを行う方法は間違っていますか?そして、はいの場合、上記のシナリオをどのように達成できますか?

+0

は、私の知る限りでは、これは動作するはずのいずれかを意味します。それを試しましたか? – 0xDEADC0DE

+1

文字列が1つの場合は、その文字列を環境設定に保存しておき、必要に応じて検索することができます。 – Aradhna

+0

私は 'String test = getString ...'のような書き方を試みましたが、Android StudioはgetStringに赤を付けました。どのように私はそれを呼び出す必要がありますか? – codeKiller

答えて

4

文字列にアクセスするには、Beratが答えたとおりにします。 IDの(R.string.resName)と@stringアノテーションを使用するXMLを使用するコードから、@string/resNameを取得して文字列を取得します。

ただし、コード(Javaなど)を使用する場合は、そのIDだけを使用することはできません。また、実際のStringを取得するにはContext.getString(R.string.resName);を使用する必要があります。ですから、コードから文字列にアクセスし、変数として、それを取得したい場合は、あなたがこれを行う:それはコンテキストにクラスであるため

String res = context.getString(R.string.myStringResource); 

私はcontextを書きます。ただし、Activityインスタンスを使用してStringを取得することもできます。アクティビティ内でコードを記述している場合は、String res = getString(R.string.myStringResource);と書くことができます。

アクティビティ延びる活性またはAppCompatActivity(またはいくつかのレベルのいずれかを拡張するクラス)

+0

ありがとう、私はそれを試みます、私はほとんど 'Context'がここで問題であると確信しています – codeKiller

+0

はい、' Context'問題は、今解決しました、ありがとう! – codeKiller

関連する問題