在某些时候更改视图背景颜色

时间:2011-08-27 16:04:28

标签: android

我有LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="wrap_content"
    style="@style/activated_item"/>

使用style / activated_item:

<style name="activated_item" parent="android:Theme.Holo">
        <item name="android:background">@drawable/item_light_list</item>
    </style>

其中drawable / items_light_list:

    <selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:exitFadeDuration="@android:integer/config_mediumAnimTime">
         <item android:state_activated="true" android:drawable="@drawable/list_activated_holo"></item>
<item android:state_selected="true" android:drawable="@drawable/list_selected_holo_light"></item>
        <item android:drawable="@drawable/list_selected_holo_light"></item> <!-- If I would remove this line the item will be selected after a long click -->
    </selector>

上述LinearLayout用于在'view'中进行充气,以用作ListFragment中的项目。我需要在项目长按后更改android:background值。我试着这样做:

public boolean onItemLongClick(AdapterView<?> parent, View view,
                    int position, long id) {
                view.setSelected(true);
return true;

但这不起作用。

请建议我应该做什么以及如何更改drawable resourse以便在background color之后设置不同的longclick

编辑:

如果我删除<item android:drawable="@drawable/list_selected_holo_light"></item>一切正常,但这不是我的解决方法。

1 个答案:

答案 0 :(得分:0)

您是否尝试过View.setBackgroundColor(int)