在TextView中长按链接时显示上下文菜单

Al.*_*Al. 5 android contextmenu textview

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

ste*_*ter 13

你可以简单地使用registerForContextMenu,例如:

    TextView tv = new TextView(this);
    registerForContextMenu(tv);
Run Code Online (Sandbox Code Playgroud)

然后覆盖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");        
}
Run Code Online (Sandbox Code Playgroud)

您可以使用视图的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

}
Run Code Online (Sandbox Code Playgroud)