どっこと備忘録群

アウトプットしないとインプットできない私が Androidアプリ開発をメインとした備忘録を載せています。

リソースを扱う

Android seletorにcolorを設定する

android:textColor に設定する場合は以下。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_selected="true" android:color="#aaa" />
  <item android:state_selected="false" android:color="@android:color/transparent" />
</selector>

一方で android:background に設定する場合は以下。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_selected="true" >
    <color android:color="#aaa" />
  </item>
  <item android:state_selected="false">
    <color android:color="@android:color/transparent" />
  </item>
</selector>

参考

アプリ内にXMLを組み込む/読み込む

app/res/xml/ フォルダにファイルを配置する。 例えば sample.xml を配置した場合、コード側から参照する時は以下のようにXMLファイルを指定してパーサーを取得する。

val parser: XmlResourceParser = context.resources.getXml(R.xml.sample)

取得後、 XmlResourceParsergetEventType()next() を利用して Iterable(イテレータ)のようにループを回して解析する。

var eventType: Int = parser.getEventType()

// XMLドキュメントが終了(END_DOCUMENT)になるまでwhile文を繰り返す
while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_DOCUMENT) {
        println("XMLドキュメントの読み取り開始")
    } else if (eventType == XmlPullParser.START_TAG) {
        println("新しいタグの参照:" + parser.name)
    } else if (eventType == XmlPullParser.END_TAG) {
        println("タグが閉じられた:" + parser.name)
    } else if (eventType == XmlPullParser.TEXT) {
        // タグに設定されている値を参照
        println("値:" + parser.text)
    }
    // 次の要素の参照へ進める
    eventType = parser.next()
}

参考

最終更新: 2026.6.13