1

メール作成で、ユーザーが to/cc/bcc にメール ID を入力/選択したとき。7 ~ 8 個の電子メール ID があり、ユーザーが 3 番目の ID を削除したいとします。ユーザーが 3 番目のものに移動してそれを削除することは非常に困難です。したがって、これに対する解決策は、

  1. ユーザーは電子メール ID を入力し、SPACE または COMMA を押します。
  2. 次に、1 つの長方形のボックスが背景に表示されます。
  3. その長方形のボックスの右隅にバツ印が欲しいです。
  4. ユーザーがその 3 番目の電子メール ID を削除したい場合は、その電子メール ID を含む 3 番目の四角形の十字マークをタップするだけです。

(Yahooメールコンポーザより下図参照)

ヤフーのメールボックス

同様の機能が必要です。どうすればアンドロイドで達成できますか? 使用できる標準コンポーネントはありますか? 現在、To、Cc、Bcc のオート コンプリート テキスト ビューを使用しています。助けてください。前もって感謝します。

4

1 に答える 1

1

動作するコードを書き上げる時間はありませんが、正しい方向を示します。標準コンポーネントのテキストでファンキーなことを行うためのキーEditTextは、「スパン」と呼ばれます。

推奨される攻撃計画:

  1. TextWatcherに aを追加してEditText、テキストがいつ変更されたかがわかるようにします。
  2. テキストが変更されるたびに、電子メール アドレスに一致するものがないかコンテンツをスキャンします (これには正規表現を使用することをお勧めします)。
  3. 一致した電子メール アドレスごとに、Bitmap標準の描画 API を使用して同等のものを生成します (つまり、作成Canvas、テキストの測定、背景の描画、テキストの描画)。
  4. ビットマップをコンストラクター引数として使用してインスタンス化しますImageSpan(これが全体の鍵となります)。
  5. テキスト内の電子メール アドレスを単一のスペース文字 (たとえば) に置き換え、その単一の文字を呼び出しsetSpan()ImageSpan外観を置き換えます。
于 2011-10-23T16:24:51.093 に答える