Javaシェアするアプリを作成していると、オブジェクトの名前やデータの送信先アドレスなど、コード上で文字列を使う機会があると思います。今回はそれらの文字列をリソースファイルで一元管理し、作業量と記述ミスを減らす方法を紹介します。使う文字列はリソースファイルであるstrings.xmlに記述します。strings.xmlは以下の場所にあります。/app/src/main/res/values/strings.xmlここに次のように記述します。name="リソースID">呼び出す文字列</string>stringタグで囲った文字が呼び出す文字列です。nameは文字列を呼び出す際のリソースIDとして使われます。今回は以下の内容を記述しました。4〜11行の内容が追記したものです。Javaのコードから呼ぶJavaのコードから呼ぶ場合は、下記のように、getStringを使ってString型の文字列を取得します。getString(R.string.リソースID)getString(R.string.リソースID,置換する文字1,置換する文字2,...)getText(R.string.リソースID)サンプルコード全体は、下記のようになってます。コードの18行目ではstrings.xmlから文字を受け取った際に文字の置換をしています。今回の場合はstrings.xmlの5行目の%1$sを”りんご”、%2$dを3に置換しています。name="sample2">%1$sが%2$d個ある</string>この行にある1$と2$の番号は、getStringの2番目以降の引数を何番目に当てはめるかを指定しています。sは文字列、dは数値を置換する際の型として指定しています。置換する文字が一つだけの場合、数字の部分を省いて%dなどとも書くことができます。レイアウトファイルから呼ぶレイアウトのxmlから呼び出す場合は次のように記述します。android:text="@string/リソースID"この呼び出し方だと、strings.xmlに書いたマークアップの設定が反映されます。今回の例では、strings.xmlの8行目で文字列を<u>と</u>で囲んでありますが、これがHTMLとして解釈されて下線が引かれます。name="sample4"><u>HTMLマークアップ</u>が使えます</string>ただし、サポートされているHTML要素は下記の3つだけです。<u>:下線<b>:太字<i>:斜体なお、Javaのコードからでも、TextViewのsetTextなどで文字列を渡す時にgetTextを使うとマークアップが反映されます。MainActivity.javaの31行目辺りを参照してください。34〜66行にあるTextView内で呼び出しています。実行結果これらのコードを端末で動かしてみると、次のようになります。どんな時に役立つか今回、画面下に早口言葉を載せてみました。この言葉をすべて別の言葉に修正するとしましょう。この問題を修正しようとした場合、まずこのコードが記述されている場所を探さなければなりません。複数のレイアウトに同じ内容の記述がある場合はその数だけ修正箇所が増えてしまうため、記述ミスをしてしまう可能性が増えます。今回のように文字列をファイルにまとめてあると、strings.xmlの12行目を書き換えるだけで簡単に修正することができます。このように、リソースファイルに文字列をまとめておくと後から変更があった場合に楽に修正することができます。Studio3.0.1です。Developersdeveloper.android.comk_saitouエンジニア1年目です。日々勉強したことをまとめていきたいと思います。スポンサーリンクシェアするフォローするk_saitou関連記事AndroidでJSONを使うJSONは文字や数値などデータを一つにまとめることができ、パースもしやすくとても便利です。ほとんどの言語で扱える形式のため、データ通信で使うのに適しています。今回はAndroidでJSONを扱うためのクラスについてまとめました。記事を読むAndroidで非同期通信Androidでアプリを作った際の非同期通信を使った内容をまとめました。AsyncTaskを継承したクラスを作り、通信処理を行っています。