Sto provando a mettere le emoticon all'interno di un EditText. Sono riuscito a farlo e funziona bene, ma ho un problema quando provo a eliminare queste emoticon da EditText utilizzando la tastiera virtuale. Non riesco a fare questa azione con un solo clic del pulsante di eliminazione. Quando inserisco un nuovo ImageSpan, sostituisco un imageId, ma quando provo a eliminare l'icona devo eliminare tutti i caratteri imageId prima di eliminare l'immagine.EditText con SpannableStringBuilder e ImageSpan non funziona correttamente
String fileName = "emoticon1.png";
Drawable d = new BitmapDrawable(getResources(), fileName);
String imageId = "[" + fileName + "]";
int cursorPosition = content.getSelectionStart();
int end = cursorPosition + imageId.length();
content.getText().insert(cursorPosition, imageId);
SpannableStringBuilder ss = new SpannableStringBuilder(content.getText());
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, cursorPosition, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
content.setText(ss, TextView.BufferType.SPANNABLE);
content.setSelection(end);
Ho bisogno di rimuovere le emoticon con un solo clic del pulsante di eliminazione. Potresti aiutarmi per favore?
Grazie!
che dire del salvataggio della posizione iniziale e finale della tua emoticon (ad esempio "HashMap") ?! su ogni carattere cancellato devi controllare, se la posizione è la fine di una emoticon nella tua hashmap. se è così, cancella il tutto. (ma è necessario occuparsi delle modifiche prima delle emoticon) – longilong