2011-10-23 2 views
0

TableRayoutでTableRowを取得しようとしていますが、ユーザーが触れたときに背景色を変更しようとしていますが、動作していないようです。 TableRowをクリックすると、何も起こりません。これは私がこれまで持っているもの:StateListDrawableがTableRowで機能していない

レイアウト:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/BaseStyle" 
    android:stretchColumns="*"> 

     <TableRow style="@style/TableRow"> 
      <TextView 
       android:id="@+id/settings 
       style="@style/BaseStyle.SettingsText" 
       android:text="Settings" 
       android:onClick="onClick" 
       android:clickable="true" 
      /> 
     </TableRow> 

</TableLayout> 

スタイル:(onclickhighlight.xml)

<style name="TableRow"> 
    <item name="android:background">@drawable/onclickhighlight</item> 
</style> 

Drawableの

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

    <!-- Active state --> 
    <item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/background_light" /> 

     <!-- Inactive state--> 
    <item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> 

     <!-- Pressed state--> 
     <item android:state_selected="true" android:state_focused="true" android:state_pressed="true" android:drawable="@android:color/background_light" /> 

</selector> 

色:

<resources> 
    <color name="background_light">#FFFFFF</color> 
</resources> 

TableRowがonclickhighlight StateListDrawableを使用していることは知っています。なぜなら、「非アクティブ状態」のandroid:drawableプロパティを@android:color/transparentから@android:color/background_lightに変更すると、背景色が白に変わるからです。

答えて

0

私はまったく同じ問題を抱えており、答えを見つけようとしています。テーブル行xmlからandroid:onClick="onClick"を削除すると、ハイライトが機能することがわかります。しかし、どのようにして、あなたが望むメソッドに関連付けるためのclickイベントを得ることができますか?

+0

私は唯一ではありません。 TextViewからonClickをTableRowに移動しました。なぜなら、行全体をクリック可能にしたいのですが、強調表示はしていないからです。バグかもしれない? –

0

私は同じ問題を抱えていました。これが私にとってはうまくいきました。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@color/yourcolor" /> 
    <item android:drawable="@color/yournormalbackground"/> 
</selector> 
関連する問題