2010-02-09 4 views
6

Ich schreibe eine Anwendung mit EditText-gesteuertem Widget. und ich möchte meine eigene Kopie & Paste-Menü erstellen. Um das Android-Standardmenü von EditText zu ersetzen, was soll ich tun? Nur übersteuern langen Klick? Oder gibt es eine andere Möglichkeit zu implementieren? Vielen Dank im Voraus.Wie kann ich ein eigenes Kontextmenü zum Kopieren und Einfügen erstellen?

+0

Hallo haben die Standard-Copy & Paste-Funktionen noch funktionieren, nachdem Sie Ihr eigenes Kontextmenü gemacht? – Muddz

Antwort

1

Es wird als eine Art Standardübung betrachtet, das Kopieren/Einfügen auf die harte Tour durch Überschreiben des Menüsystems, Erstellen der Menüelemente und des eigenen internen Puffers zu implementieren.

Dies sollte jedoch nicht so sein, wenn ein besserer Weg auf der Plattform verfügbar ist. Die Neuimplementierung von Plattformfunktionen ist gut zum Lernen, aber schlecht für die Wartung.

Community-Wiki, wie dies ist keine echte Antwort, und ich sollte nicht dafür Rep erhalten.

+0

Meine persönliche Meinung ist dieselbe wie Ihre, aber immer tut der Kunde ..., es gibt keinen Weg, ohne mein eigenes Copy & Paste-Menü zu implementieren. Wie auch immer, danke für Ihre Antwort. – skysign

+1

Ein Kommentar ist im Allgemeinen besser für diese Art von Sache – Casebash

+0

@caseBash gut, da es akzeptiert wurde, antwortete es offensichtlich nicht. – Joshua

2

EditText sollte bereits ein Kontextmenü aktiviert haben. Wenn dies nicht der Fall wäre, müssten Sie es aktivieren, indem Sie registerForContextMenu aufrufen. Sobald Sie das Kontextmenü aktiviert haben, müssen Sie Elemente hinzufügen. Dies geschieht in onCreateContextMenu mit einem der Menu.add methods.

Der schwierige Teil schreibt den Code für onContextItemSelected, nachdem der Benutzer eine Option ausgewählt hat. Das Speichern von Text in der Zwischenablage ist nur eine Frage des Aufrufs ((ClipboardManager) getSystemService(CLIPBOARD_SERVICE)).setText("myText");. Zuerst müssen wir jedoch herausfinden, welcher Text kopiert werden soll. Ich habe diesen letzten Teil noch nicht herausgefunden, aber ich bin zuversichtlich, dass ich das bald tun werde.

Verwandte Fragen

+0

Ich habe eine benutzerdefinierte Textauswahl/Kontext-Symbolleiste erstellt, in der ich die Funktionalität für den Benutzer hinzugefügt habe, um einen markierten Text fett/kursiv/unterstreichen usw. zu machen. Nach der Anpassung funktionieren die Standardfunktionen Kopieren/Einfügen/Ausschneiden jedoch nicht mehr , aber die Symbole für sie erscheinen immer noch? Wie können diese wieder aktiviert werden? Meine eigenen benutzerdefinierten Methoden für fett/kursiv usw. funktioniert jedoch! – Muddz