长按监听器的持续时间

4

我希望减少列表视图响应长按监听器的时间。是否可以缩短长按持续时间?

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;
            }
        });

你能展示一些代码吗? - Raptor
一切皆有可能!展示给我们你所尝试的。 - Hemanth
http://stackoverflow.com/questions/12473757/android-long-key-press-listener - user3748230
我有一个扩展了ListFragment的片段。我想要减少onItemLongClickListener的持续时间。我没有MotionEvent对象来计算点击持续时间。请指导我。 - megha
有没有办法缩短在列表项上单击的持续时间而不是在单个视图上?请指导我。 - megha
如果我的回答对您有帮助,请接受我的答案。谢谢。 - throws_exceptions_at_you
1个回答

5
你可以使用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;
            }
        });

触摸监听器捕获的视图不是所选项目,而是ListView。有没有办法获取ListView? - Totalys

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接