一千萬個為什麽

搜索

在TextView中長按鏈接時顯示上下文菜單

我有一個 TextView ,其 MovementMethod 設置為 LinkMovementMethod 。添加到 TextView 的文本是普通文本和URL的組合。對於URL,我想在長時間按下URL以執行諸如復制地址之類的操作時提供上下文菜單。我已經看了 LinkMovementMethod 的源代碼,但它似乎沒有任何我可以覆蓋的長按相關代碼。有關如何實現這一目標的任何想法?

最佳答案

你可以簡單地使用registerForContextMenu,例如:

    TextView tv = new TextView(this);
    registerForContextMenu(tv);

然後覆蓋onCreateContextMenu以創建菜單

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
           //Create your context menu here
    menu.setHeaderTitle("Context Menu");
    menu.add(0, v.getId(), 0, "Action 1");        
}

您可以使用視圖的ID傳遞給按下菜單項時發生的事件,以便區分稱為事件的視圖。

@Override
public boolean onContextItemSelected(MenuItem item) {
   //Call your function to preform for buttons pressed in a context menu
   //can use item.getTitle() or similar to find out button pressed
   //item.getItemID() will return the v.getID() that we passed before

}

轉載註明原文: 在TextView中長按鏈接時顯示上下文菜單