【问题标题】:Duration of longClick listenerlongClick 侦听器的持续时间
【发布时间】:2015-01-08 07:05:32
【问题描述】:

我想减少我的列表视图响应长单击侦听器的时间。是否可以减少长点击持续时间?

getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view,
                    final int position, long id) {

                    if(selectedHabit){
                        Intent intent = new Intent(parent.getContext(),AddScheduleEventActivity.class );
                        startActivityForResult(intent, CREATE_EVENT);
                        return true;
                    }



                return false;
            }
        });

【问题讨论】:

  • 你能显示一些代码吗?
  • 一切皆有可能!向我们展示您的尝试。
  • 我有一个扩展 ListFragment 的片段。我想减少 onItemLongClickListener 的持续时间。我没有 MotionEvent 的对象来计算点击持续时间。请指导我。
  • 有什么方法可以减少点击列表项而不是单个视图的持续时间?请指导我。

标签: android onlongclicklistener


【解决方案1】:

您可以使用 OnTouchListener:

    private int lastTouchedViewId = -1;
    private long duration = System.currentTimeMillis();
    private long LONG_CLICK_DURATION = 1000;

...

view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {


                switch (motionEvent.getAction()) {


                    case MotionEvent.ACTION_DOWN:
                        if (lastTouchedViewId != view.getId()) {
                            lastTouchedViewId = view.getId();
                            duration = System.currentTimeMillis();
                        }
                        else
                        {

                            if(duration-System.currentTimeMillis()> LONG_CLICK_DURATION)

                            doStuff();
                        }
                        return true;

                    case MotionEvent.ACTION_UP:
                        lastTouchedViewId = -1;
                        return true;
                }


                return false;
            }
        });

【讨论】:

  • touchlistener捕获的view不是选中的item,而是listview。有没有办法获取列表视图?
猜你喜欢
  • 1970-01-01
  • 2016-05-18
  • 2019-10-20
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多