Android:上下文菜单没有显示ListView与LinearLayout定义的成员?

我有一个ListActivity和ListView,我已经绑定了一些数据。 数据显示正常,我还为视图注册了上下文菜单。 当我将列表项显示为一个简单的TextView时,它工作正常:

 

但是,当我尝试更复杂的东西时,比如显示名称和CheckBox,菜单永远不会出现:

     

长按可以处理更复杂的元素吗? 我正在建立2.1。

(编辑)

在ListActivity上注册:

 registerForContextMenu(getListView()); 

我发布的代码是列表的项目模板。

您的CheckBox可能会干扰问题。 考虑使用CheckedTextView而不是LinearLayoutCheckBoxTextView组合,因为CheckedTextView是Android期望的CHOICE_MODE_MULTIPLE列表。

查看$ANDROID_HOME/platforms/$VERSION/data/res/layout/simple_list_item_multiple_choice.xml ,其中$ANDROID_HOME是安装SDK的地方, $VERSION是某个Android版本(例如, android-2.1 )。 此资源是您应该用于CHOICE_MODE_MULTIPLE列表的标准资源。 您可以随意将其复制到项目中,并根据需要调整CheckedTextView的样式。

设置复选框属性focusable = false;

并再次运行项目..

在这个地方找到: http : //www.anddev.org/view-layout-resource-problems-f27/custom-list-view-row-item-and-context-menu-t52431.html

将复选框设置为不可聚焦可以解决问题。

不确定在使用除触摸屏以外的其他东西(使用滚轮或箭头键)导航UI时是否会导致问题,但它解决了我的问题(我的布局比TextView和Checkbox更复杂……)

上下文菜单只能注册到View的子类。 我不知道您是如何使用上下文菜单注册LinearLayout的,您是否将其打包在某种类型的View中? 如果是这样,你应该发布该代码。

无论如何为什么不只是注册每个列表项的TextView? 谁会长按复选框…

这应该来自常规的ListView。 但是如果你从头开始新的列表,我会考虑使用CheckedTextView:

  checkBox.setOnLongClickListener(new View.OnLongClickListener() { public boolean onLongClick(View v) { // return false to let list's context menu show return false; } });