2014-02-25 83 views
0

在我的應用程序中,我有listview。每個listview的項目都有按鈕。Listview OnItemClick和按鈕

當我按onItemClick按鈕的狀態也改變了。

這裏是我的代碼

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/button_gl"/> 
    <item android:state_selected="true" android:drawable="@drawable/button_gl"/> 
    <item android:state_enabled="false" android:drawable="@drawable/button_unselect"/> 
    <item android:state_focused="false" android:drawable="@drawable/prod_button"/> 
    <item android:drawable="@drawable/prod_button"/> 
</selector> 

,這是我的列表視圖項按鈕

<Button 
         android:id="@+id/productAdd" 
         android:layout_width="0dp" 
         android:layout_height="wrap_content" 
         android:layout_weight="1" 
         style="@style/button_style" 
         android:background="@drawable/button_indicator" 
         android:layout_gravity="center_vertical" 
         android:gravity="center" 
         android:focusable="false" 
         android:focusableInTouchMode="false"/> 

我不明白我做錯了什麼在這裏,爲什麼總是得到按鈕改變了他的狀態,當我按Listview的項目?

回答

0

你指出,在列表項選擇時,你的按鈕改變狀態,這種行爲是不希望的。我認爲這可能是由以下行引起的:

<item android:state_selected="true" android:drawable="@drawable/ph_prod_button_gl"/> 

如果還選中了所包含的按鈕, 你試過刪除它嗎? 讓我知道這是否工作。

+0

不,它不起作用 – pmb

+0

我試過你的代碼,它在我的listview中效果很好。沒有不希望的狀態改變。在我的測試中,按鈕的焦點=「false」項目開始,如果按下它,它會匹配state_pressed =「true」。如果我點擊該項目,我沒有任何變化。你可以發佈按鈕樣式和按鈕的上下文嗎? –

+0

奇怪的是,它不適用於像Nexus s(2.3.7) – pmb