はじめに
こんにちは、mAgmAです。今回はAndroid Studioで黄色エラー表示である「Hardcoded string ~~, should @use resource」について考えていこうと思います。
どんなエラー?
今回のエラーは以下の通りです。
qiita.rb
Hardcoded string "時間を入力してください。例)45", should use `@string` resource
Hardcoded string "運動時間", should use `@string` resource
Hardcoded string "休憩時間", should use `@string` resource
Hardcoded string "時間を入力してください", should use `@string` resource
Hardcoded string "スタート", should use `@string` resource
上記を見てみると、全て日本語を入力していることが分かります。
2バイトにしていることが原因かもしれません。
解決法
このエラーの意味は、
「プログラム上に直接入力しているから、変数を使おう」
ということを言っています。
具体的に言うと、
このエラーには
- Hardcoded
- @string
Hardcoded
これは、「直接書いているモノ」です。「マジックコード」とも呼ばれます。上記で言うと、["時間を入力してください。例)45"]です。
これが何故エラーと出るかというと、
とても長いプログラムを書いたときにこれが何を表しているか分からなくなるからです。
なにか特定のモノを書きたいときは、変数に入れようということらしいです。
@string
これは、「@stringにある変数を使おう」ということです。私もこのエラーが出て調べるまで知らなかったのですが、Android Studioには変数を格納しておくファイルがあったんですよね。
ここに使いたい文言を変数として格納しておくことで、他のファイルでこのファイルにある変数を使用することができます。
ちなみに、使用方法は
activity_main.xml
android:text="@string/{name属性}"
です!
これでエラーの解決が出来ました!
まとめ
今回は、黄色のエラー「Hardcoded String ~~ should @use String」について考えました。
実際のプログラム実行には直接関係のないエラーですが、コードを変更するときに混乱しないようにしっかりと変数の定義をしていきましょう!
では!