OnItemLongClickListener() 不会导致 ListFragment 中的日志点击手势
Posted
技术标签:
【中文标题】OnItemLongClickListener() 不会导致 ListFragment 中的日志点击手势【英文标题】:OnItemLongClickListener() doesn't result in log tap gesture in ListFragment 【发布时间】:2016-03-15 14:52:01 【问题描述】:与 AdapterView.OnItemLongClickListener 结合使用的 ListFragment 中的长按手势不起作用。我正在尝试在即将到来的单击时实现 GMail 之类的长按选择和连续选择。
ListFragment 声明如下:
public class VacationListFragment extends ListFragment implements View.OnClickListener,
ActionMode.Callback, AdapterView.OnItemClickListener,
AdapterView.OnItemLongClickListener, AbsListView.MultiChoiceModeListener,
ListFragment 使用 SimpleCursorAdapter 从 DB 中加载数据,如下所示:
mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.vacationlist_row_item, null,
fromColumns, toView, 0);
mVacationListView.setAdapter(mAdapter);
当前情景:
CAB 会显示提供的菜单(删除),并且该操作正在运行。截图粘贴在下面:
Screenshot here
我相信我们非常接近解决方案,我们将不胜感激。 如果我不是教学法,请随意 ping。谢谢。
【问题讨论】:
从下面的链接中找到了最好的例子:github.com/springbyexample/spring-by-example/blob/master/… 因此任务解决了。 【参考方案1】:示例:
textView.setOnLongClickListener(new View.OnLongClickListener()
@Override
public boolean onLongClick(View v)
/*do action */
return false;
);
【讨论】:
【参考方案2】:将mVacationListView.setOnLongClickListener(this)
放入您的代码中。然后,您将能够使用以下方法处理点击:
@Override
public boolean onLongClick(View v)
return false;
【讨论】:
当前监听器实现mSpamListView = getListView(); mSpamListView.setEmptyView(getActivity().findViewById(R.id.empty)); mSpamListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); mSpamListView.setItemsCanFocus(false); mSpamListView.setOnItemClickListener(this); mSpamListView.setOnItemLongClickListener(this); mSpamListView.setMultiChoiceModeListener(this);
它不应该在监听器中,而应该在 onCreateView 或 onAttach 中【参考方案3】:
我可以用下面的代码示例解决这个问题。这是 ListFragment 与 LoaderCallbacks 和 MultiChoiceModeListener 结合使用的多选列表的好例子。
https://github.com/springbyexample/spring-by-example/blob/master/android/android-client/src/main/java/ua/com/springbyexample/fragment/MainListFragment.java
【讨论】:
【参考方案4】:我认为您希望在片段中单击列表项。请尝试以下代码。
在您的适配器中添加此代码。
mVacationListView.setOnLongClickListener(your fragment instance);
在您的片段中处理覆盖方法。
@Override
public boolean onLongClick(View v)
return false;
如果您这样做,那么您的列表项长点击侦听器将处理您的片段。
【讨论】:
你能推荐任何我可以使用的样本吗?谢谢 您好 faisalm,请查看以下链接。示例代码也可用。 vogella.com/tutorials/AndroidListView/article.html以上是关于OnItemLongClickListener() 不会导致 ListFragment 中的日志点击手势的主要内容,如果未能解决你的问题,请参考以下文章