【Android】Int型(数値)をXMLに定義する方法

Androidアプリ開発

Androidアプリを開発する際、リソース(文字列など)をXMLに定義しますよね。

それを数値として定義する方法をご紹介します。

【前提知識】 なぜXMLを使うのか

コード上に直接文字列を記述することが可能ですが、なぜXMLに定義するのでしょうか。

XMLに定義することで、文字列を一元管理できます。

例えば、「ポイント」という文字列を複数箇所で表示するアプリがあったとします。

その文字列を変更する場合、全ての文字列を書き換えなければなりません。

XMLに定義しておけば、1カ所の修正で済みます。

Int型(数値)をXMLに定義する

XMLファイルを作成する

res/values 配下に、integer.xml というファイルを作成します。

『Int型のリソースを定義する』ということが分かるように明示的な名称にします。

※任意のファイル名で構いませんが、分かりやすい名称にすることをお勧めします。

Int型(数値)を定義する

以下のように記述しましょう。コピペ可です!

<!--?xml version="1.0" encoding="utf-8"?-->
<resources>
  <integer name="test_value">100</integer>
</resources>

内容の解説

strings.xml など他のリソースの定義方法とほぼ同じです。

<resources> タグは必ずルート(一番上)になるようにしましょう。

そして次に<integer>タグが重要になります。

見ての通り、値をタグで囲い、name=で定義名を設定します。

値の取得方法

定義ができたら、次はその値をコード上で取得しましょう!

下記のコードはKotlinです。

val testValue: Int = resources.getInteger(R.integer.test_value)
Resources res = getResources();
int testValue = res.getInteger(R.integer.test_value);

【さらに深める】 strings.xml と integer.xml の使い分け

使う場面を切り分けていきましょう。

使用するXMLファイルに悩んだ場合に参照ください。

strings.xml

  • 文字列を定義する
  • IDを定義する

IDが数字だった場合、「03」というのは数値にするとどうなるでしょうか。

「3」と認識されてしまいます!

また、数字だけじゃなくアルファベットもIDに含まれる可能性がある場合は、strings.xmlに定義しましょう。

integer.xml

  • 数値を定義する

「03」のような0詰めの値ではないか確認すべきです。

dimens.xml

  • レイアウトのサイズ指定をする

数値を定義するのはinteger.xmlですが、レイアウト(文字サイズ、余白など)はdimens.xmlに定義しましょう。

参考文献

その他のリソースタイプ  |  Android Developers
このページでは、ブール値、色、ディメンション、ID、整数、整数配列、型付き配列リソースなど、外部公開可能なその他のリソースタイプを定義します。
タイトルとURLをコピーしました