2012-07-03 284 views
1

見迪帕答案的解決方案:)改變按鈕背景按下狀態

我讀了所有的計算器給出的解決方案,但沒有一個似乎在我的情況下工作。事情是我在我的應用程序中有幾個按鈕,這將對用戶操作產生不同的反應。例如,當應用程序啓動時,除了兩個之外的所有按鈕都被禁用。所以我設置默認drawable到我的XML。當我打開一個文件時,所有這些文件都是可點擊的,但其中一些文件在按下時需要保持按下狀態(我已經完成了),但其他文件只需要按下然後取消選中,這是我無法做到的。順便說一句,所有的按鈕都有不同的背景,這就是爲什麼我不使用選擇器。下面是一些PRINTSCREEN:

enter image description here

enter image description here

因此,大家可以看到我管理的默認狀態和「選中狀態」(按下「永遠」),但我不能設置一個被點擊只需按下按鈕即可,當動作完成時返回到未按下狀態。因爲我知道onClick是在觸摸後調用的,所以它不起作用。

+0

你嘗試與onTouch監聽器實現? –

+0

@MMo是的,現在它的作品謝謝:) – Purfakt

回答

2

試試這個..

button.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      //change the button for pressed state..    
      button.setBackgroundResource(R.drawable.pressed); 
     }  
    } 

    if(event.getAction()==MotionEvent.ACTION_UP) { 
     //After pressing the button again change the image for button as 
     button.setBackgroundResource(R.drawable.normal); 
    } 
}); 

我希望對你有所幫助......

+0

它是完美的!爲什麼在地球上我沒有做過...感謝隊友! – Purfakt