
问题:当在recyclelervIEw中的项目上长按时,无法显示显示“删除”选项的上下文菜单
预期结果:见下图
我几乎就在那里,但我遗漏了一些东西,使contextMenu显示在longClick上.
这是我放在vIEwHolder中的内容.我不知道我应该添加什么以及在onLongClick事件中显示上下文菜单的位置.
我跳过了一些代码行,并保留了与我的问题相关的代码.
感谢你的帮助,
我的界面处理两种类型的点击
public interface OnItemClickListener{ voID onItemClick(int position);}public interface OnItemLongClickListener{ voID onItemLongClick(int position);}查看者代码
public voID bindLongClick(final int position, final OnItemLongClickListener onItemLongClickListener) { itemVIEw.setonLongClickListener(new VIEw.OnLongClickListener() { @OverrIDe public boolean onLongClick(VIEw vIEw) { onItemLongClickListener.onItemLongClick(position); return true; } }); } @OverrIDe public voID onCreateContextMenu(ContextMenu contextMenu, VIEw vIEw, ContextMenu.ContextMenuInfo contextMenuInfo){ //menuInfo is null Log.v(LOG_TAG, "grrr"); contextMenu.setheaderTitle("Select The Action"); contextMenu.add(0, vIEw.getID(), 0, "Supprimer");//groupID, itemID, order, Title }适配器代码
@OverrIDe public voID onBindVIEwHolder(CityListVIEwholder holder, int position) { holder.cityname.setText(cityArrayList.get(position).getCityname()); holder.bindClick(position, onItemClickListener); holder.bindLongClick(position, onItemLongClickListener); }然后,在活动中 – 我跳过了与我的问题无关的内容
mCitylistadapter = new Citylistadapter(mContext, cityArrayList, new Citylistadapter.OnItemClickListener() { @OverrIDe public voID onItemClick(int position) { mPager.setCurrentItem(position); mDrawerLayout.closeDrawers(); } }, new Citylistadapter.OnItemLongClickListener() { @OverrIDe public voID onItemLongClick(int position) { Log.v(LOG_TAG, "position "+position); } }); registerForContextMenu(mRecyclerVIEw);解决方法:
你需要的是在里面显示带有列表的Dialog.像那样:
itemVIEw.setonLongClickListener(new VIEw.OnLongClickListener() { @OverrIDe public boolean onLongClick(VIEw vIEw) { final CharSequence[] items = {"Supprimer", "etc", "etc1"}; AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder.setTitle("Select The Action"); builder.setItems(items, new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog, int item) { } }); builder.show(); return true; } }); 总结 以上是内存溢出为你收集整理的Android – 长期点击RecyclerView项目和ContextMenu全部内容,希望文章能够帮你解决Android – 长期点击RecyclerView项目和ContextMenu所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)