Selectorを使ってTableRowの背景色を変えたい

1,061 views
Skip to first unread message

Kuluna

unread,
Nov 22, 2011, 9:04:33 AM11/22/11
to android-g...@googlegroups.com
皆さんこんにちは。

TableRowをタッチすると別アクティビティに飛ぶプログラムを作っているのですが、タッチしても見た目にはちゃんと押されているかわかりづらいので、
タッチするとTableRowの背景色が変わるようにしたいです。

XMLの構造は
<LinerLayout>
    <ScrollView>
        <LinerLayout>
            <TableLayout>
                <TableRow>
                <TableRow>
                <TableRow>
                -省略-
            </TableLayout>
        </LinerLayout>
    </ScrollView>
</LinerLayout>
こんな感じです。

また、
res/color/change_color.xmlに
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:background="@color/selected" android:state_focused="true"/>
<item android:background="@color/gray"/>
</selector>

res/values/color.xmlに
<resources>
<color name="gray">#ddd</color>
<color name="selected">#6495ed</color>
</resources>
と書きました。

ですが、TableRowのandroid:backgroundに@color/change_colorを指定すると
Failed to parse file *******/res/color/change_color.xml
というエラーが出て反映されませんでした。

どなたかご指導よろしくお願いします。

noxi

unread,
Nov 23, 2011, 3:26:10 AM11/23/11
to android-g...@googlegroups.com
noxiです。


item要素の属性にandroid:backgroundなんてありましたか。。。?
そこはandroid:colorかandroid:drawableな気がします。


2011年11月22日23:04 Kuluna <mailk...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/android-group-japan/-/0_42IPX_dwYJ
> にアクセスしてください。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com
> にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> からこのグループにアクセスしてください。
>

Kuluna

unread,
Nov 23, 2011, 5:31:13 AM11/23/11
to android-g...@googlegroups.com
返信ありがとうございます。drawableにするとできました。
また、タッチ操作では反応しなかったので、state_pressedを追加しました。

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/selected" android:state_focused="true"/>

    <item android:drawable="@color/selected" android:state_pressed="true"/>

    <item android:drawable="@color/gray"/>

</selector>


Reply all
Reply to author
Forward
0 new messages