5

我有一个TextView设置MovementMethodLinkMovementMethod. 添加到的文本TextView是普通文本和 URL 的组合。对于 URL,我想在长按 URL 以执行复制地址等操作时提供上下文菜单。我已经查看了源代码,LinkMovementMethod但它似乎没有任何我可以覆盖的长按相关代码。关于如何实现这一目标的任何想法?

4

1 回答 1

13

您可以简单地使用 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

}
于 2010-04-19T22:38:48.893 回答