2012-02-08 53 views
0
@Override 
public void onClick(View v) { 
    if(v.getId()==R.id.cvp11 && v.getId()==R.id.cvp22 && v.getId()==R.id.cvp32) 
     yc.start(); 
    else if(v.getId()==R.id.cvp12 && v.getId()==R.id.cvp21 && v.getId()==R.id.cvp31) 
     dc.start(); 

} 

沒有添加或聲明,它播放與cvp11和cvp12按鈕點擊聲音,但我也想播放這些聲音與其他按鈕clicks.However當我寫這樣,他們沒有播放時,我點擊每個按鈕。什麼是錯誤?謝謝。我不能用幾個按鈕點擊播放一個聲音嗎?

回答

1

我想,而不是&&(邏輯AND運算符),你的意思做||(邏輯OR運算符):

public void onClick(View v) { 
    if(v.getId()==R.id.cvp11 || v.getId()==R.id.cvp22 || v.getId()==R.id.cvp32) 
     yc.start(); 
    else if(v.getId()==R.id.cvp12 || v.getId()==R.id.cvp21 || v.getId()==R.id.cvp31) 
     dc.start(); 
} 

當然,用於格式化和可用性, @dmytrodanylyk回答switch是一個更優雅的方式來做到這一點。

+0

Omg!我是怎麼做到的?今天我呆在電腦前很多,現在我的大腦在燃燒.Thx Adam。 – 2012-02-08 19:18:05

1

試試這個:

switch(v.getId()) 
{ 
case R.id.cvp11: 
case R.id.cvp22: 
case R.id.cvp32: 
yc.start(); 
break; 

case R.id.cvp12: 
case R.id.cvp21: 
case R.id.cvp31: 
dc.start(); 
break; 

} 
+0

而這是更實際的方式。謝謝你,dmytrodanylyk。 – 2012-02-08 19:19:09