我想把我所有的ContextMenu邏輯放在一個單獨的類中,但似乎我無法在這個類中識別某人是否選擇了一個項目。如何在單獨的類中提供所有ContextMenu邏輯?
我有一個主要活動的應用程序。除此之外,此活動還包含一個列表視圖。這個列表視圖應該包含一個上下文菜單,所以我定義它對應其Clicklistener:
MyListener myListener = new MyListener();
listview.setOnItemClickListener(myListener);
listview.setOnCreateContextMenuListener(myListener);
myListener的同時實現了OnItemClickListener和OnCreateContextMenuListener。我這樣做是爲了保持類的可讀性(就像之前提到的那樣,已經有一些其他的UI組件和一些邏輯)。到目前爲止,一切都像一種魅力。單擊被識別,並顯示ConextMenu。
現在我也希望MyListener也對在ContextMenu中選擇的項目作出反應。不幸的是,只有活動及其相應的子類似乎提供了像onContextItemSelected(menuItem項)這樣的方法。所以我不得不把這個邏輯放到我的主要活動中,並通過這樣做來分配我的ContextMenu邏輯(我也測試了它,它可以工作,但是對我來說發佈邏輯在我看來就像是一個不行)。
我想念這裏的東西嗎?有沒有辦法以另一種方式爲我的列表視圖定義某種ContextMenu ClickListener,而不是將它放在我的主要活動中?或者我在不認識的情況下做了一些不好的練習?
期待您的意見!
乾杯無眼
那麼肯定,這將是可能的。在我看來,有可能將外部類定義爲單擊和上下文點擊的監聽器,但無法定義後面的內容(如果沒有可能對此內部發生的任何事情做出反應的可能性,則可以設置單獨的類來設置ContextMenu ContextMenu是相當無用的)。這就是爲什麼我問我是否做錯了什麼或錯過了什麼。不管怎麼說,還是要謝謝你! – Eyeless 2013-02-10 15:45:33