2013-05-20 150 views
0

我是新來的android和嘗試一些功能。我有一個是在一個按鈕稱爲XML文件點擊:如何在按下時切換按鈕的狀態

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


<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true" android:drawable="@drawable/button_pressed"/> 
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> 
<item android:drawable="@drawable/btn_not_pressed" /> 
</selector> 

如何修改這個代碼,以便當按下按鈕,直到再次單擊它停留在這個狀態,當它回覆到以前的狀態?

+0

'代碼' <選擇的xmlns:機器人= 「http://schemas.android.com/apk/res/android」> 'code' –

回答

2

描述嘗試在你的java類固定其與檢查相結合的背景切換按鈕。添加一個標誌,當按鈕被選擇,當它沒有被選擇,或者當它被選擇或窗口打開時,添加圖像的按下狀態,當它被關閉時添加圖像,當它沒有被按下時。

0

如果你選擇編程做到這一點,你可以像這樣做,

boolean flag = true; 

Button button = (Button) findViewById(R.id.button_id); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      if(flag){ 
       button.setBackgroundResource(R.drawable.clickedonce); 
       flag = false; 
      }else{ 
       button.setBackgroundResource(R.drawable.clickedtwice); 
       flag = true; 
      } 
     } 
    }); 

也許會有所幫助。

+1

是否可以使用xml來實現? –

1

你應該爲existing answer

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When selected, use grey --> 
    <item android:drawable="@drawable/selected_image" 
      android:state_checked="true" /> 
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/unselected_image" 
     android:state_checked="false"/> 

</selector>