长按一下ListFragment

我正在处理一个ListFragment并做一个onListItemClick。 一切工作正常,但现在我想要使用一个长的项目点击(例如setOnItemLongClickListener(新的OnItemLongClickListener()为一个活动)。我怎样才能在我的片段使用这个?

谢谢!

3 Solutions collect form web for “长按一下ListFragment”

是的,tsync发布的解决scheme适用于我。 我也遇到了同样的问题,认为这是不可能的。 我尝试了以下build议:

public class ProjectsFragment extends ListFragment { @Override public void onActivityCreated(Bundle savedState) { super.onActivityCreated(savedState); getListView().setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(getActivity(), "On long click listener", Toast.LENGTH_LONG).show(); return true; } }); 

它的工作!

根据你想要实现的内容,你可以使用给定的上下文方法:

首先注册被长时间按下的View类(在你的Fragment类中):

 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); registerForContextMenu(this.getListView()); } 

比实现这两个方法,创build一个上下文菜单,做一个菜单项被点击时,你想要什么:

 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = this.getActivity().getMenuInflater(); inflater.inflate(R.menu.my_context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.add: // <-- your custom menu item id here // do something here return true; default: return super.onContextItemSelected(item); } } 

这对我有用

 getListView().setOnItemLongClickListener(new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> av, View v, int position, long id) { //Get your item here with the position return true; } }); 
  • android.content.Context.getPackageName()'的空对象引用
  • 用Fragments进行Androidsearch
  • 如何设置DialogFragment的标题?
  • 为什么我要避免片段中的非默认构造函数?
  • 片段与片段活动的区别
  • 如何确定何时在ViewPager中可见碎片
  • 如何在碎片之间传递值
  • 如何将数据从DialogFragment发送到片段?
  • 添加到后端堆栈时,如何维护碎片状态?
  • Android - android.view.InflateException:二进制XML文件行#8:错误膨胀类的片段
  • FragmentPagerAdapter只存在于Android.Support.V4.App(而不是Android.App)