我有一个实现OnTouchListener
的Activity。然后,我有一些注册到此的自定义视图。
customView1.setOnTouchListener(this);
customView2.setOnTouchListener(this);
然后我有了这个:
@Override
public boolean onTouch(View view, MotionEvent event) {
if (view == customView1); {
t = Toast.makeText(this, "customView1", Toast.LENGTH_SHORT);
t.show();
}
}
问题是,即使单击的视图不是customView1,也会显示Toast。
答案 0 :(得分:1)
使用View.getId()
在不同的视图上获取onTouch
,而不是比较实例:
if (view.getId() == customView1.getId()) {
t = Toast.makeText(this, "customView1", Toast.LENGTH_SHORT);
t.show();
}
并且如果阻止
执行条件,则删除semicolon(;)
答案 1 :(得分:1)
if语句后面有分号。因此,如果条件在您的情况下无用。
删除;在下面的陈述之后
if (view == customView1);