在Android中按下button时触发事件

我有以下的Android代码,只要点击一个button就可以播放声音:

Button SoundButton2 = (Button)findViewById(R.id.sound2); SoundButton2.setOnClickListener(new OnClickListener() { public void onClick(View v) { mSoundManager.playSound(2); } }); 

我的问题是,我想要按下button(触摸)立即播放声音,而不是释放(触摸)。 任何想法,我怎么能做到这一点?

Solutions Collecting From Web of "在Android中按下button时触发事件"

也许使用一个OnTouchListener ? 我猜MotionEvent将有一些方法来注册对象的触摸。

  button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return false; } })) 

你应该这样做:b是button。

 b.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN ) { mSoundManager.playSound(2); return true; } return false; } }); 

import android.view.MotionEvent;