【问题标题】:Why did Touch Event triggered when enter in my activity?为什么进入我的活动时触发了触摸事件?
【发布时间】:2013-09-20 14:54:29
【问题描述】:

我有 2 个 AutoCompleteTextView 和 2 个 onTouchListener,问题是,当我第一次进入活动时,触摸侦听器在触摸活动中的内容之前触发..

有人知道原因吗??有没有第一次进入活动时不触发的解决方案?

编辑

我对微调器上的 OnItemSelectedListener 有同样的问题,我该怎么办? 这是我的听众:

country.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            filter();
        }
    });

提前致谢

【问题讨论】:

  • 您好,请检查答案,并确保在监听器自动触发时您处于什么位置。
  • 我在运行 Android 4.0.4 的 Sansui LifeTab/ETab 704VP 上遇到了同样的问题。布尔值很烦人,但似乎是最简单的解决方案。

标签: android android-activity


【解决方案1】:

您确定要过滤如下的触摸事件吗?

image.setOnTouchListener(new OnTouchListener() {            
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            int action = event.getAction();
            if (action == MotionEvent.ACTION_DOWN){

            }else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL){

            }               


       return true;
        }
    });

也参考this链接。

编辑:放置日志并检查自动触发 onItemClickListener 时 int position 的值。我建议您将微调器的 0 位置保持为空,并检查位置是否为零,然后忽略,否则执行过滤器。

country.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0)

{
//do nothing
}
else
{
filter();
}            

        }
    });

【讨论】:

  • 是的,我用行动过滤了.. 我解决了它,但现在 Spinner 上的事件 onItemSelected 做同样的事情:当我第一次进入活动时,它会触发侦听器。我该如何解决?
  • 你能发布代码吗?同时检查更新答案中的链接
  • 我解决了它添加了一个布尔变量..我第一次进入活动时它是假的,而不是真的..
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
相关资源
最近更新 更多