Triggering event when Button is pressed down in Android
我有以下Android代码,点击一个按钮就可以播放声音:
1 2 3 4 5 6 7 8
| Button SoundButton2 = (Button)findViewById(R.id.sound2);
SoundButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mSoundManager.playSound(2);
}
}); |
我的问题是,我想让声音在按下按钮后立即播放(触屏),而不是在释放时播放(触屏)。我对如何完成这个有什么想法吗?
你应该这样做:B是按钮。
1 2 3 4 5 6 7 8 9 10 11 12
| 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;
}
}); |
- 仍然出现这些错误:-类型new view.ontouchListener()必须实现继承的抽象方法view.ontouchListener.ontouch(view,motionevent)-类型new view.ontouchListener()的方法ontouch(view,motionevent)必须重写超类方法-motionevent无法解析为类型
- 这两个答案中提供的代码似乎都是正确的。将导入添加到android.view.MotionEvent。这是OnTouchListener的文档:developer.android.com/reference/android/view/…
- 很好,在导入motionEvent并使用此行后使其工作:if(event.getAction()==motionEvent.actionu down){
- 非常感谢SW333T!event.equals(motionevent.action_up)对我也不起作用,event.getaction()==motionevent.action_down)的解决方案非常好!
- 用SW333T FIX编辑了答案
- 有人能解释一下下面检查的内容吗:if(event.getaction()==motionevent.actionu down)
- 完美地为OnTouch+音乐池工作
可能使用OnTouchListener?我想MotionEvent会有一些方法来注册对象上的触摸。
1 2 3 4 5 6 7 8
| button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
})) |
- 谢谢你的回复。尝试使用该代码时出现以下错误:-类型new view.ontouchListener()必须实现继承的抽象方法view.ontouchListener.ontouch(view,motionevent)-类型new view.ontouchListener()的方法ontouch(view,motionevent)必须重写超类方法-motionevent无法解析为类型
- 答案是将编译器级别更改为1.6(stackoverflow.com/questions/1678122/…)
import android.view.MotionEvent;