如何区分Longclicks和onclick事件?

时间:2014-02-27 20:13:13

标签: android android-intent android-listview android-fragments android-alertdialog

我试图在点击标题时打开一个片段,在长按一下时打开另一个片段,但无论长时间点击还是点击一次,它们都会立即触发。我如何区分这两者? 这是我的代码块:

case R.id.market_header:
            marketHeader.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View vi) {
                    ((MainActivity) getActivity()).onMarketClicked(view);
                }

            });
            marketHeader.setOnLongClickListener(new OnLongClickListener() {   
                   @Override
                   public boolean onLongClick(View v) {

                 TestcaseFragment2.newInstance(getFragmentManager());

                    return false;
                   }
                  }); 
            break;

2 个答案:

答案 0 :(得分:2)

您应该在onLongClick中返回true,以便系统知道您已处理该事件。

答案 1 :(得分:1)

您应该在setOnLongClickListener

上返回 true
marketHeader.setOnLongClickListener(new OnLongClickListener() {   
                   @Override
                   public boolean onLongClick(View v) {

                 TestcaseFragment2.newInstance(getFragmentManager());

                    return true; //change here
                   }
                  }); 

OnLongClick 会返回一个boolean来表明您是否已经消耗了该事件,并且不应该继续进行该事件。也就是说,返回true表示您已经处理了该事件,它应该停在这里