エラーメッセージ
状態:解決済
閲覧数:3,008
投稿日:2014-03-29
更新日:2014-03-29
[I18N] Hardcoded string "★★", should use @string resource
内容
ハードコーディングに関する警告
・(表面上の)動作支障は発生しない
・レイアウトファイルに文字列をハードコードすることは、良い習慣ではない
・具体的には、文字列リソースファイルに追加して、レイアウトから参照するべき
・こうすることで、文字列に変更が生じた際の対応等が容易になる(効率的管理の追求)
・また「strings.xml」に分離することで、多言語対応も可能になる(ソースコードに文字列を直書きしている場合は、実質不可)
※ハードコード【hard code】(ハードコーディング) … 特定の動作環境を決め打ちして、その動作環境で動作させることを前提とした処理やデータをソースコードの中に書き込んでしまうプログラミング方式
実際に遭遇した例1
警告メッセージ
[I18N] Hardcoded string "保存", should use @string resource
対応
対象ファイル
▼/res/layout/test1_1.xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
/>
↓
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save"
/>
▼/res/values/strings.xml
<resources>
<string name="hello">Hello World, SetContentView1_1Activity!</string>
<string name="app_name">SetContentView1_1</string>
</resources>
↓
<resources>
<string name="hello">Hello World, SetContentView1_1Activity!</string>
<string name="app_name">SetContentView1_1</string>
<string name="save">保存</string>
</resources>