我有一个TextView
,其MovementMethod
设置为LinkMovementMethod
。添加到TextView
的文字是普通文字和网址的组合。对于URL,我想在长时间按下URL以执行诸如复制地址之类的操作时提供上下文菜单。我已经查看了LinkMovementMethod
的源代码,但似乎没有任何可以覆盖的长按相关代码。关于如何实现这一目标的任何想法?
答案 0 :(得分: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
}