2012-04-04 2 views
0

Androidの入力コントロールを作成しようとしています。異なる入力フレーズを一緒にボールドして編集することができます。たとえば、以下の一連のフレーズは、事前に定義されることがあります。あらかじめロードされたフレーズ+新しいテキストでAndroidビューを作成する

  • はグランドレベル以下のメーターを掘り下げるマイルが
  • は宝
  • のために掘っ
  • 開始を見上げる進みます

段落を構成するために複数のフレーズが必要ですそれは理にかなっている。さらに、入力したフレーズ自体は編集可能にする必要があります。たとえば、最初のセットフレーズでは、「進む」と「マイル」の間に数字を挿入する必要があります。そのようなフレーズの助けを借りて構築することが考えられるパラグラフの例を次に示します。

進んで42マイル北に進み、空を見上げて南に21マイル進む。宝のために掘り出し始め、地面から3メートル下を掘る。私は長押しで育て、EditTextにコンテキストメニューを追加してみました

は、これまでのところ、私はこれを実現するには、2つの主な方法を試してみました。コンテキストメニューのエントリはそれぞれ、設定されたフレーズに対応しています。残念ながら、ビルドインのAndroidの長押しメニューが引き継がれ(カット/コピー/貼り付けオプション)、コンテキストメニューが表示されなくなりました。

  • CommaTokenizerMultiAutoCompleteTextViewを使用して、リソースファイルからフレーズを読み込もうとしました。これは有望に見えましたが、各フレーズの後にカンマを強制します。さらに、それは編集にかなり不自由なものになります。カンマをバックスペーシングすると、挿入されたフレーズ全体が削除されます。私は完全に新しいTokenizerを構築することは可能だと思いますが、私は実際にどのトークンを使用できるか、バックスペースがタップされたときにトークン全体の削除を防ぐ方法を見ません。

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

  • 私は次に何を試すことができるかに関するアドバイスはありますか?

    ありがとうございました。

    答えて

    0

    MultiAutoCompleteTextViewをサブクラス化し、replaceText()メソッドを上書きして、入力されたフレーズを「置き換えたものとしてマークしない」ようにして解決しました。正常に動作します。

    関連する問題