OnTouchListener视图始终相同

时间:2013-10-20 17:42:26

标签: android android-view ontouchlistener

我有一个实现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。

2 个答案:

答案 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);