在Android中按下button时触发事件

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

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

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

  • Android的 - 如何禁用searchbutton,如何实现onSearchRequested()?
  • 面向ICS的button:我必须在ICS SDK中select哪种可绘制的button?
  • 在Android应用上创build滑下animation的最佳方法是什么?
  • CoordinatorLayout中的第三方FloatingActionButton库
  • 如何变灰一个button?
  • Facebook应用程序如何实现可拖动的浮动button
  • 不显示在recyclerview上的浮动操作button(位于DrawerLayout内部)
  • Android如何从材料devise文档实现底部工作表
  • 也许使用一个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;