如何按下第一个按钮,释放第二个按钮并获得第二个按钮的触摸事件?
问题描述:
我有2个按钮。这是我在做什么:如何按下第一个按钮,释放第二个按钮并获得第二个按钮的触摸事件?
- 我按下按钮1
- 然后,我将我的手指扣2
- 我按钮2
我设置触摸释放2个按钮的听众。它记录的触摸事件的两个按钮:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
button1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("ButtonTouchTag", "Button 1: DOWN");
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
Log.d("ButtonTouchTag", "Button 1: MOVE");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d("ButtonTouchTag", "Button 1: UP");
}
return true;
}
});
button2.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("ButtonTouchTag", "Button 2: DOWN");
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
Log.d("ButtonTouchTag", "Button 2: MOVE");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d("ButtonTouchTag", "Button 2: UP");
}
return false;
}
});
}
}
此代码记录下列信息:
- 按钮1:DOWN
- 按钮1:MOVE
- 按钮1:MOVE
- 。按钮1:移动
- 按钮1:移动
- 按钮1:UP
正如你所看到的,按钮2没有得到触摸事件。
问题:如何按下第一个按钮,释放第二个按钮并获得第二个按钮上的触摸事件?
答
button2.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("ButtonTouchTag", "Button 2: DOWN");
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
Log.d("ButtonTouchTag", "Button 2: MOVE");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d("ButtonTouchTag", "Button 2: UP");
}
return true;
}
});
它应该返回true。
我试过这个,但它没有帮助。我认为该布尔值标识应该onClick方法应该被调用或不。 –
是否检查过你的代码?你回归虚假而不是真实。 –
是检查了我的代码,检查了你的代码。没有区别。我认为问题应该在另一个 –