显示上下文菜单时链路长pressed在TextView中上下文、链路、菜单、TextView

由网友(你是深海,我愿溺亡)分享简介:我有一个的TextView 及其 MovementMethod 设置为 LinkMovementMethod 。文本添加到的TextView 是正常的文本和URL的组合。对于网址,我想提供一个上下文菜单时URL是pssed做的事情,如将地址复制长$ P $。我有一个看源代码 LinkMovementMethod ,但它...

我有一个的TextView 及其 MovementMethod 设置为 LinkMovementMethod 。文本添加到的TextView 是正常的文本和URL的组合。对于网址,我想提供一个上下文菜单时URL是pssed做的事情,如将地址复制长$ P $。我有一个看源代码 LinkMovementMethod ,但它似乎并没有什么长期pressed相关code,我可以重写。如何绕过去实现这一目标的任何想法?

I have a TextView with its MovementMethod set to LinkMovementMethod. Text added to the TextView is a combination of normal text and URLs. For URLs, I would like to offer a context menu when the URL is long pressed for doing things such as copying the address. I've had a look at the source for LinkMovementMethod but it doesn't seem to have any long pressed related code I could override. Any ideas on how to go around achieving this?

推荐答案

您可以简单地使用registerForContextMenu例如:

You can simply use registerForContextMenu eg:

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

然后重写onCreateContextMenu创建菜单

and then override the onCreateContextMenu to create a menu

@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传递给一个菜单项pressing发生的事件,以便区分其观点称为事件。

where you can use the ID of the view to pass on to the events that occur on pressing of a menu item, in order to differentiate which view called the event.

@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

}
阅读全文

相关推荐

最新文章