0

我有一个实现OnTouchListener. 然后我有几个注册到这个的自定义视图。

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。

4

2 回答 2

0

用于View.getId()获取onTouch不同的视图而不是比较实例的:

   if (view.getId() == customView1.getId()) {

        t = Toast.makeText(this, "customView1", Toast.LENGTH_SHORT);
        t.show();
    }

semicolon(;)在 if 条件之后删除以执行 if 块

于 2013-10-20T17:45:12.117 回答
0

if 语句后有一个分号。因此,如果条件在您的情况下是无用的。

所以删除;在下面的声明之后

 if (view == customView1);
于 2013-10-20T17:46:44.907 回答