Android アプリ開発の setText() の中で文字列を連結すると怒られる

怒られるソースコード

gist0bd60f44625485c5ca11

 

このソースコードの問題は二つ。

(1) Javaソースコードで文字列をリソースから参照していない

(2) setText() の括弧の中で連結(文字列の+演算)を行っている

 

 

改善したソースコード

gistfd9770a8626120c1701c

 

二つの問題点の解決法をそれぞれ解説します。

(1) については、リソースから参照します。 getResources().getString(R.string.label) とすることで、 strings.xml から文字列を参照することが出来ます。

(2)については、strings.xml での定義で解決します。文字列の定義をする際に、文字列の中に %i$t の形式の表現をいれると、getResources().getString() の i+1 番目の引数に t 型の引数を渡すことで String.format() のように文字列を整形することが出来ます。i は1以上の整数、t には文字列なら s で整数なら d などの文字が使えます。