我试图将我所有的 ContextMenu 逻辑放在一个单独的类中,但似乎我无法在这个类中识别是否有人选择了一个项目。
我有一个主要活动的应用程序。除了其他一些东西,这个活动还包含一个列表视图。这个列表视图应该包含一个上下文菜单,所以我定义了它对应于它的 Clicklistener:
MyListener myListener = new MyListener();
listview.setOnItemClickListener(myListener);
listview.setOnCreateContextMenuListener(myListener);
MyListener 实现了 OnItemClickListener 和 OnCreateContextMenuListener。我这样做是为了保持类的可读性(就像前面提到的那样,已经有一些其他 UI 组件和一些逻辑)。到目前为止,一切都像魅力一样。识别单击并显示 ConextMenu。
现在我还希望 MyListener 也对在 ContextMenu 中选择的项目做出反应。不幸的是,似乎只有活动及其相应的子类提供了类似 onContextItemSelected(menuItem item) 的方法。因此,我必须将该逻辑放入我的主要活动中,并通过这样做来分发我的 ContextMenu 逻辑(我也对此进行了测试,它有效,但在我看来,分发逻辑似乎是不行的)。
我在这里想念什么吗?有没有办法为我的列表视图定义某种 ContextMenu ClickListener,而不是把它放在我的主要活动中?还是我在没有意识到的情况下做了一些不好的练习?
期待您的意见!
干杯无眼