2010-10-07 444 views
0

按鈕顏色不應改變

<item android:state_focused="true" > 
    <shape> 
     <gradient 
      android:endColor="#FF9900" 
      android:startColor="#FF9966" 
      android:angle="270" /> 
     <stroke 
      android:width="3dp" 
      android:color="#CCCCCC" /> 
     <corners 
      android:radius="3dp" /> 
     <padding 
      android:left="10dp" 
      android:top="10dp" 
      android:right="10dp" 
      android:bottom="10dp" /> 
    </shape> 
</item> 

    <item>   
    <shape> 
     <gradient 
      android:endColor="#FFFFFF" 
      android:startColor="#FFFFFF" 
      android:angle="270" /> 
     <stroke 
      android:width="1dp" 
      android:color="#666666" /> 
     <corners 
      android:radius="1dp" /> 
     <padding 
      android:left="3dp" 
      android:top="3dp" 
      android:right="3dp" 
      android:bottom="3dp" /> 
    </shape> 
</item> 

以上就是我爲填充按鈕的邊框與黑色的顏色啊同一編寫的代碼我正在使用3個按鈕的代碼設置爲background.Now,當我點擊button1時,紅色出現,並在我釋放時去。但我希望紅色可見,直到我按下一個按鈕。儘管按下後我釋放Button1,但紅色應該可見。但是當我按下任何其他按鈕時,紅色應該消失。
任何人都可以幫助我解決這個問題嗎?
請任何人幫我解決這個問題?
由於事先

+0

爲什麼不使用'ToggleButton'? – CommonsWare 2010-10-07 19:37:26

回答

0

恐怕你不能完成你的目標。因爲,AFAIK沒有定義釋放後按鈕行爲的狀態(只是正常,集中和按下)。假定正常狀態。

但是,你可以做到以下幾點:

  • 讓我們說,你的原始XML繪製是繪製一個
  • 定義新的XML繪製B,已正常狀態定義爲希望紅色按鈕
  • 後用戶按下按鈕,您將是紅色的,因爲繪製一個說
  • 當用戶釋放按鈕,確保其通過的繪製

    變化一直顯示爲紅色

    myButton.setBackgroundDrawable(getResources()。getDrawable(R.drawable.B));

  • 當用戶按下另一個按鈕將其恢復爲正常狀態通過

    myButton.setBackgroundDrawable(getResources()getDrawable(R.drawable.A)。);

0

嘗試只通過XML定義按鈕狀態添加狀態android:state_selected

+0

android:state_selected沒有效果。我爲此添加了一個單獨的標籤以及android:state_pressed.Kindly給我任何其他解決方案 – 2010-10-07 20:36:48