OnItemLongClickListener() 不会导致在 ListFragment 中记录点击手势

OnItemLongClickListener() doesn't result in log tap gesture in ListFragment

AdapterView.OnItemLongClickListener 结合使用时,长按手势在 ListFragment 中不起作用。我正在尝试实现 GMail,例如长按选择和即将到来的单击连续选择。

ListFragment声明如下:

public class VacationListFragment extends ListFragment implements View.OnClickListener, 
    ActionMode.Callback, AdapterView.OnItemClickListener, 
    AdapterView.OnItemLongClickListener, AbsListView.MultiChoiceModeListener, {

ListFragment 使用 SimpleCursorAdapter 从数据库加载数据,如下所示:

mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.vacationlist_row_item, null, 
                  fromColumns, toView, 0);
mVacationListView.setAdapter(mAdapter);

当前情景:

在单个 CAB 上显示提供的菜单(删除)并且该操作正在运行。下面粘贴的屏幕截图:

Screenshot here

我相信我们非常接近解决方案,我们将不胜感激。 如果我不是教学人员,请随时 ping。谢谢

样本:

textView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                /*do action */
                return false;
            }
        });

mVacationListView.setOnLongClickListener(this) 放入您的代码中。然后您将能够使用以下方式处理点击:

@Override
public boolean onLongClick(View v) {
    return false;
}

我认为您希望在您的片段中点击列表项。请尝试以下代码。

  1. 在您的适配器中添加此代码。

    mVacationListView.setOnLongClickListener(your fragment instance);
    
  2. 处理片段中的覆盖方法。

    @Override
    public boolean onLongClick(View v) {
        return false;
    }
    

如果您这样做,那么您的列表项长按侦听器将处理您的片段。

我可以使用以下代码示例解决问题。这是 ListFragment 的 Multi-select 列表结合 LoaderCallbacksMu​​ltiChoiceModeListener 的好例子.

https://github.com/springbyexample/spring-by-example/blob/master/android/android-client/src/main/java/ua/com/springbyexample/fragment/MainListFragment.java