2012年3月17日土曜日

setState( new int[]{ android.R.attr.state_selected} ); が効かない

以下のようなdrawableをbackgroundに指定したViewで 、stateを反映したい。

v.getBackground().setState( new int[]{ android.R.attr.state_selected} );
としても全然反映されないし、困ってた。


 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 非選択時 -->
<item
android:state_selected="false"
android:drawable="@drawable/tab_unselected"
/>
<!-- 選択時 -->
<item
android:state_selected="true"
android:drawable="@drawable/tab_selected"
/>
</selector>

解決手段は
v.setSelected();
とすること。

selected限定なのでオールマイティじゃないけど、ま良い。

0 件のコメント:

コメントを投稿