OnTouchListener 在 Android 的 BaseAdapter 中被频繁调用

Posted

技术标签:

【中文标题】OnTouchListener 在 Android 的 BaseAdapter 中被频繁调用【英文标题】:OnTouchListener being called too often in BaseAdapter in Android 【发布时间】:2016-01-28 05:18:09 【问题描述】:

我在CustomAdapter extends BaseAdapter 中的ImageView 上设置了OnTouchListener

方法如下:

 holder.projectImageImageView.setOnTouchListener(new View.OnTouchListener() 
        @Override
        public boolean onTouch(View v, MotionEvent event) 
            Intent intent = new Intent(context1, test.class);
            intent.putExtra("projectInfo",projectItems);
            intent.putExtra("distributorInfo", distributorItems);
            intent.putExtra("contractorInfo",contractorItems);
            context1.startActivity(intent);
            return true;
        
    );

所以,如果我的 ListView 中有 3 个项目并且我点击了一个项目 ImageView,为什么它会被称为我拥有的那么多项目?

【问题讨论】:

在 MotionEvent 类中使用 UP_EVENT 来调用意图。 【参考方案1】:

在我从 OnTouchListener 更改为 OnClickListener 之后,效果很好!

【讨论】:

以上是关于OnTouchListener 在 Android 的 BaseAdapter 中被频繁调用的主要内容,如果未能解决你的问题,请参考以下文章

当用户在视图上移动手指时,我们如何获取在 Android 中的 onTouchListener 中触摸的视图的 id?

我无法实现 OnTouchListener 来拖动弹出窗口

Android触碰事件

android触碰事件

Android onTouch()和onTouchEvent()区别

Android LinearLayout 多点触控