AndroidStudioでstringを定義するとき、これまではstrings.xmlを開いて定義していたのですが、Extract string resourceという機能を使うことで、layoutファイルの中だけでstringリソースを定義できるんですね。
やり方は簡単で、以下の手順でできます。手順にするとステップ数がありますが、実際は速攻でできます。gifもご覧ください。
- レイアウトファイルの
android:text="hogehoge"
の箇所にカーソルを当てる - 表示されたダイアログのExtract string resourceを選択する
-
Resource Name
の箇所にはstringのリソース名(例:hoge_label
)を、Resource value
のところにはstringの値((例:hogehoge
))を入れる - 対象stringファイルのディレクトリなどを選択
- OKを選択
- レイアウトファイルで
android:text="hogehoge"
がandroid:text="@string/hoge_label"
に変換され、strings.xmlに定義が追加される
手順1については、他にも以下の方法もあります。
- カーソル当てた時に出てくるバルブアイコンから選択
- Option+Enter (Windowsの場合Alt+Enter)の選択肢から選択
多言語対応をしている場合
stringファイルが一つだけならこれで完結なのですが、value-ja
,value-en
など多言語対応でstringsファイルが複数ある場合には、ちょっと手間が増えます。
- 先ほどの手順4で、複数のディレクトリにあるstringファイルを複数選択できるので、一旦全て同じ文字列で全てのstringsファイルにリソース追加
- レイアウトファイルの
android:text="@string/hoge_label"
をcommand押下しながらクリックし、編集したいstringsファイルにジャンプして編集
若干手間は増えますが、stringsファイルを自分で探す手間は省けるのではないでしょうか。
以上、ちょっとしたTIPSでした。