2009-02-18 81 views
3

當您長時間按下Android中的某些內容時,會出現一個上下文菜單。我想在該系統中的所有TextViews的上下文菜單中添加一些內容。Android將項目添加到全局上下文菜單

例如,系統通過「複製」和「粘貼」執行此操作。我想添加我自己的,並讓它出現在每個應用程序中。

+1

對於任何人現在瀏覽這個問題的答案在這裏:http://stackoverflow.com/questions/12995439/custom-cut-copy-action-bar-for-edittext-that-shows-text-selection-handles – 2013-06-01 19:31:32

回答

5

目前Android不支持此功能,您無法在系統級全局覆蓋或掛接功能,而無需執行您公開的意圖或活動的特定活動。即使在發佈意圖的情況下,除非運行的應用程序是消費者,否則無關緊要...並且所有基礎系統應用程序和顯然所有應用程序之前的應用程序都不會更新應用程序以供使用。

基本上,這是不可能的。

你試圖用這個全局上下文菜單完成什麼工作,某種在你的應用程序中運行的全局「搜索」或「發送到」功能?

0

嗯;我不知道你是否可以擴展內置類型,例如像。 Ruby(我的Java知識不是那麼大)。

但是,您可以從TextView派生自己的MyTextView。然後替換所有TextViews的佈局是這樣的:

<TextView android:id="@+id/TextView01" /> 

<com.mydomain.mypackage.MyTextView android:id="@+id/TextView01" /> 

自動改變所有這些領域的類型。

然後,您需要覆蓋所有構造函數 (尤其是TextView(Context context, AttributeSet attrs))。

之後,所有佈局充氣器(自動或手動)將創建這種類型沒有大驚小怪。

然後,您可以創建/註冊上下文菜單回調,如你所願。

+2

這隻適用於他的應用程序/佈局中的TextView。他希望爲所有應用添加內容,包括那些沒有作者的應用。除非TextView使用一些內部Intent來構建其行爲列表,否則似乎不可能進入。 – 2009-02-18 09:30:47

+0

這不會讓你例如。在其他應用中觀看某人的密碼?如果您可以使用上下文菜單附加到所有TextView,則也可以轉儲其內容... – 2009-02-18 10:34:58

+0

在Android中,有可能通過適當的權限觀看某人的密碼。 – 2009-02-19 02:18:31

0

這可能有點不好意思,但是您可以在應用程序/活動級別捕獲菜單鍵,檢查當前活動視圖是否爲文本輸入視圖,然後構建並顯示您自己的自定義彈出式菜單。

這是可能的,它只是有點棘手。

如果您創建/膨脹TextView,請調用setFocusable(false),然後將其設置爲活動視圖,您的活動仍將接收關鍵事件。 您必須手動將所有這些事件(軌跡球,觸摸,鍵)轉發到您的視圖樹。 (在你的「onKeyDown」函數中,你必須調用適合頂級視圖的onKeyDown方法)你實際上必須陷入「焦點」的概念,並將它自己分配給正確的視圖。

雖然有點醜,它可能會給你想要的結果。

但是,這隻適用於您自己的應用程序。以前的答案在整個手機中都是不可能的。

0

在選擇菜單中按「共享」按鈕(三點樹)。然後你應該選擇你自己的應用程序。不幸的是,它不適用於輸入字段內容。

相關問題