Ich habe eine TextView
mit MovementMethod
auf LinkMovementMethod
festgelegt. Text, der zu TextView
hinzugefügt wird, ist eine Kombination aus normalem Text und URLs. Für URLs möchte ich ein Kontextmenü anbieten, wenn die URL lange gedrückt wird, um beispielsweise die Adresse zu kopieren. Ich habe mir die Quelle für LinkMovementMethod
angesehen, aber es scheint keinen langen gedrückten verwandten Code zu haben, den ich überschreiben könnte. Irgendwelche Ideen, wie man das erreichen kann?Zeige Kontext-Menü, wenn Link in TextView gedrückt wird
Antwort
Sie können einfach verwenden registerForContextMenu zB:
TextView tv = new TextView(this);
registerForContextMenu(tv);
und dann die onCreateContextMenu außer Kraft setzen ein Menü zu erstellen
@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");
}
, wo Sie die ID der Blick auf die Ereignisse weitergeben können, dass treten beim Drücken eines Menüpunktes auf, um zu unterscheiden, welche Ansicht das Ereignis genannt wird.
@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
}
Ich möchte nur ein Kontextmenü nur anzeigen, wenn die URL lange gedrückt ist, so kann ich einige Optionen für diesen Link wie "Kopieren" und "Geben" Share ' –
@Al: Wenn Sie ein Kontextmenü registrieren, erscheint es nur bei einem langen Druck – Casebash
Sie können auch auf diese Frage suchen möchten nach [Kopieren in einem Kontextmenü der Umsetzung] (http://stackoverflow.com/questions/2226836/how-can-i-write-my-own-context -Menü-zum-Kopieren-Einfügen). Es hat keine Antwort atm, aber ich arbeite an der Suche nach einem – Casebash