我有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;
}
});
}
}
此代码记录以下信息:
如您所见,按钮2未触及事件。
问题:如何按第一个按钮,在第二个按钮上释放并在第二个按钮上获取触摸事件?
答案 0 :(得分:0)
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。