Android:CustomArrayAdapter showContextMenu onClick
在我的Android应用程序中,我有一个自定义的ArrayAdapter,用于管理实现onCLickListener的列表中的行 在onClick方法中,我想显示上下文菜单Android:CustomArrayAdapter showContextMenu onClick,android,onclick,Android,Onclick,在我的Android应用程序中,我有一个自定义的ArrayAdapter,用于管理实现onCLickListener的列表中的行 在onClick方法中,我想显示上下文菜单 public class MyAdapter extends ArrayAdapter<MyClass> implements OnClickListener {
public class MyAdapter extends ArrayAdapter<MyClass> implements
OnClickListener {
public void onClick(View v) {
v.showContextMenu();
}
}
在我的主列表活动类中,我重写了启动不同活动的onLongListItemClick方法
当我点击列表中的一行时,上下文菜单正确显示,但一秒钟后,onLongListItemClick也被执行。如何阻止这种情况发生
谢谢 在您的评论之后,我想我有了一个解决方案。不要在上下文菜单中使用行onClick,在适配器中为复选框设置一个click侦听器,并从此处显示上下文菜单。这样就避免了onLongListItemClick 要使复选框和行都可单击,请将其添加到XML中的复选框定义中:
android:focusable="false"
android:focusableInTouchMode="false"
编辑
这应该可以做到:
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
View v = buttonView.getParent(); // get the parent row view containing the checkbox
v.showContextMenu(); // show the context menu
}
}
}
你不能把它们倒过来吗?正常情况下使用长时间单击上下文菜单,并定期单击以启动新活动。在这种情况下,我需要长时间单击以打开编辑屏幕,用户可以在其中修改其原始详细信息并保存。我在列表中的每个元素旁边都有一个复选框。因此,当用户点击复选框时,我想打开上下文菜单,提供我不理解的“删除”和“编辑选项”,为什么这不能成为上下文菜单的一部分?我是说菜单上的选择。。。或者仅仅是因为你想消除必须选择菜单项进行编辑的额外点击?确切地说,我可以删除长点击,只允许在选择上下文菜单选项后进行编辑。但是我想在长时间单击时允许它,在上下文菜单中,单击侦听器方法是什么样子的?