1

Dans Email composer, lorsque l'utilisateur tape/sélectionne les identifiants d'email dans/cc/bcc. Supposons qu'il existe 7 à 8 identifiants de courrier électronique et que l'utilisateur souhaite maintenant supprimer le 3e. Il est très difficile pour l'utilisateur d'aller au 3ème et de supprimer celui-là. Donc, je pense que la solution pour cela est,Dans l'email composer, je veux des entrées de conception pour yahoo comme fonctionnalité dans android

  1. L'utilisateur entre l'ID de messagerie et frappe ESPACE ou COMMA.
  2. puis une boîte rectangulaire devrait apparaître sur le fond.
  3. Je veux une croix sur le coin droit de cette boîte rectangulaire.
  4. Si l'utilisateur veut supprimer ce 3ème identifiant d'email, alors il tapera simplement sur la croix du 3ème rectangle qui contient cet identifiant d'email.

(s'il vous plaît se référer figure ci-dessous du compositeur de messagerie Yahoo)

Yahoo mail box

J'ai besoin des fonctionnalités similaires. Comment puis-je atteindre dans Android? Y a-t-il un composant standard que je peux utiliser? Actuellement, j'utilise l'affichage de texte automatique complet pour To, Cc, Bcc. S'il vous plaît aider. Merci d'avance.

Répondre

1

Je n'ai pas le temps d'écrire du code de travail, mais je vais vous orienter dans la bonne direction. La clé pour faire des choses géniales avec du texte dans des composants standards tels que EditText est appelée "span".

plan proposé d'attaque:

  1. Ajouter un TextWatcher à votre EditText afin de savoir quand le texte change.
  2. Chaque fois que le texte change, balayez le contenu à la recherche de tout élément correspondant à une adresse e-mail (nous vous suggérons d'utiliser regex pour cela).
  3. Pour chaque adresse e-mail correspondante, générez un équivalent Bitmap à l'aide des API de dessin standard (c'est-à-dire, créez Canvas, mesurez du texte, dessinez un arrière-plan, dessinez du texte). Installez un ImageSpan (c'est un peu la clé de tout) en utilisant votre bitmap comme argument constructeur.
  4. Remplacez l'adresse e-mail dans le texte avec un caractère espace unique (disons) et appelez setSpan() sur ce seul caractère pour que votre ImageSpan remplace son apparence.
Questions connexes