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

解析中のPC Android開発

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

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

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

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

リソースを1箇所に定義する解説図

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

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

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

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

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

XMLファイルを作成する

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

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

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

Int型(数値)を定義する

以下のように記述しましょう。

コピペ可です!

内容の解説

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

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

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

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

値の取得方法

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

下記のコードはKotlinです.

【さらに深める】 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 デベロッパー  |  Android Developers
このページでは、以下のような外部化可能なその他のリソースタイプについて定義します。XML 内で定義されたブール値。属性はありません。次のアプリコードは、ブール値を取得します。次のレイアウト XML は、属性にブール値を使用しています。XML 内で定義されたカラー値。カラーは、RGB 値とアルファ チャンネルで指定します...
タイトルとURLをコピーしました