EditText 駆動のウィジェットを使用してアプリケーションを作成しています。独自のコピー & ペースト メニューを作成したいと考えています。EditText の Android デフォルト メニューを置き換えるには、どうすればよいですか? ロングクリックをオーバーライドするだけですか?または実装する別の方法はありますか?前もって感謝します。
2 に答える
EditText では、コンテキスト メニューが有効になっている必要があります。そうでない場合は、registerForContextMenuを呼び出して有効にする必要があります。コンテキスト メニューを有効にしたら、項目を追加する必要があります。これは、 Menu.add メソッドの 1 つを使用してonCreateContextMenuで行われます。
難しいのは、ユーザーがオプションを選択した後にonContextItemSelectedのコードを記述することです。テキストをクリップボードに保存するには、 を呼び出すだけ((ClipboardManager) getSystemService(CLIPBOARD_SERVICE)).setText("myText");
です。ただし、最初にコピーするテキストを見つける必要があります。この最後の部分はまだ理解していませんが、すぐに解決できることを願っています。
関連する質問
メニューシステムを上書きし、自分でメニュー項目を作成し、独自の内部バッファを作成することによって、難しい方法でコピー/貼り付けを実装することは、やや標準的な演習であると考えられています。
ただし、プラットフォームでより良い方法が利用できる場合、それは行われるべき方法ではありません。プラットフォーム機能の再実装は、学習には適していますが、保守には適していません。
これは本当の答えではないため、コミュニティ Wiki を参照してください。