0

私は、ユーザーがさまざまなセットフレーズをまとめて編集することにより、テキストの段落を作成できるAndroid入力コントロールを構築しようとしています。たとえば、次のセットフレーズが事前定義されている場合があります。

  • マイルを進める
  • 見上げる
  • 宝物を掘り始める
  • 地下メートルを掘り下げる

意味のある段落を作成するには、複数のフレーズが必要になります。さらに、フレーズ自体は、入力したら編集可能である必要があります。たとえば、最初に設定されたフレーズでは、「proceed」と「miles」の間に数字を挿入する必要があります。これは、そのようなフレーズの助けを借りて解釈できると考えられる段落の例です。

北に42マイル進み、空を見上げてから南に21マイル進みます。宝物を掘り始め、地下3メートルを掘り下げます。

これまで、これを達成するために2つの主な方法を試しました。

  1. EditText長押しで表示されるコンテキストメニューをに追加してみました。コンテキストメニューのエントリは、それぞれ設定されたフレーズに対応していました。残念ながら、組み込みのAndroidの長押しメニューが引き継がれ(切り取り/コピー/貼り付けオプション)、コンテキストメニューが表示されなくなりました。

  2. を使用して、リソースファイルからフレーズをロードしてみMultiAutoCompleteTextViewましCommaTokenizerた。これは有望に思えましたが、各フレーズの後にコンマを強制します。さらに、編集するのはかなりユーザーフレンドリーになります-コンマをバックスペースすると、挿入されたフレーズ全体が削除されます。まったく新しいTokenizerを構築する可能性があると思いますが、実際に使用できるトークンや、バックスペースがタップされたときにトークン全体が削除されないようにする方法がわかりません。

  3. 私は別のアプローチを取り、Androidユーザー辞書を調べて、その中にフレーズを追加できるかどうかを確認しました。残念ながら、スペースを含むフレーズは受け入れられないようです。

次に何を試すことができるかについて誰かアドバイスはありますか?

ありがとう。

4

1 に答える 1

0

入力したフレーズを「置換済みとしてマーク」しないようにメソッドをサブクラス化MultiAutoCompleteTextViewしてオーバーライドすることで、これを解決しました。replaceText()正常に動作します。

于 2012-06-25T19:36:07.770 に答える