2012-07-27 99 views
0

這是一個簡單的問題,按鈕setPressed()的onclick

在我的XML文件我有:

<Button 
android:id="@+id/button_8" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:text="@string/Bf" 
android:background="@drawable/button_purple" 
android:layout_weight="1" 
android:textColor="#ffffff" 
android:onClick="action"    
/> 

而且在我的活動我有:

public void action (View v) 
{ 
    s = "m"; 
    changeCouleur("blue"); 
    v.setPressed(true); 
} 

當我按下它正在工作的按鈕,但按鈕不會保持按下狀態。

我不使用的圖像這是我使用的顏色:提前

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" > 
     <shape> 
      <solid 
       android:color="#449def" /> 
      <stroke 
       android:width="1dp" 
       android:color="#2f6699" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
    <item android:state_focused="true" > 
     <shape> 
      <solid 
       android:color="#449def" /> 
      <stroke 
       android:width="1dp" 
       android:color="#2f6699" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <gradient 
       android:startColor="#449def" 
       android:endColor="#2f6699" 
       android:angle="270" /> 
      <stroke 
       android:width="1dp" 
       android:color="#2f6699" /> 
      <corners 
       android:radius="4dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 
</selector> 

感謝,如果你發現了一些錯誤。 請任何人有任何想法?

+2

也許你需要ToggleButton? – 2012-07-27 19:21:07

+0

也許它不起作用?嘗試((按鈕)v).setPressed(true) – 2012-07-27 19:21:34

+0

我試圖施放,但不起作用。 – user1527152 2012-07-27 19:30:31

回答

0

從我的理解是,您正在嘗試使用按鈕來打開/關閉狀態,此按鈕的狀態也會清楚地指示該功能的狀態。

如果我是正確的,那麼使用自定義複選框。您將不得不爲不同的複選框狀態定義選擇器(如user1071979所述)。

+0

我想你明白我想要做什麼,但user1071979解決方案不能幫助我。 – user1527152 2012-07-27 19:58:52

+0

那麼在那種情況下使用ToggleButton並在選擇器中定義android的項目:state_checked =「true」&android:state_checked =「false」 – 2012-07-29 08:55:34

0

你必須使用兩個圖像來做到這一點。

button_normal button_pressed 然後繪製文件夾

<?xml version="1.0" encoding="UTF-8"?> 

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

<item android:state_pressed="false" 
    android:drawable="@drawable/button_normal" /> 

<item android:state_pressed="true" 
    android:drawable="@drawable/button_pressed" /> 

</selector> 

然後,設置該文件作爲ImageView的背景創建一個XML資源。這裏我們使用imageview作爲按鈕。不要忘記在可繪製文件夾中包含這兩個按鈕。

+0

我已經編輯我的問題(我不使用圖片) – user1527152 2012-07-27 19:32:14