У меня есть a 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");
}
, где вы можете используйте идентификатор представления, чтобы перейти к событиям, которые происходят при нажатии элемента меню, чтобы различать, какое представление вызвало событие.
@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
}