Sto costruendo una semplice app di chat in cui l'utente ha la possibilità di inviare testo ed emoticon. Posso inviare sia testo che emoticon a un altro telefono. I miei problemi sono:Il testo è incasinato con ImageSpan in EditText
1. Quando digito qualcosa e aggiungere un emoticon:
Poi non riesco a digitare il testo a destra prima e subito dopo l'immagine. Posso scrivere prima della lettera "o". Il sistema "vede" che digito, quindi, anche se digito "Honey", dopo lo smiley, non riesco a vedere, ma l'EditText registra e il messaggio viene inviato:
2.Quando Aggiungo solo un'emoticon all'Edittext, quindi lo cancello., Non riesco a digitare nulla perché appare l'emoticon cancellata. Appare solo una volta, quindi non importa quanti caratteri io digiti, l'EditText sembra appena prima che io abbia cancellato l'emoticon, MA il testo viene inviato senza emoticon, proprio come in tutti e tre i casi.
3.Quando ho digitare "qualcosa" nel EditText quindi inserire un emoticon dopo "qualche":
poi ho messo il cursore dopo l'emoticon ed eliminarlo, ecco cosa rimane :
Ma il messaggio corretto viene inviato quando si preme il pulsante di invio:
Questo è quello che c'è dentro il pulsante ascoltatore del emoticon (questo metodo viene attivato quando clicco sul emoticon per aggiungere al EditText).
ib_happy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int cursorPosition = mOutEditText.getSelectionStart();
mOutEditText.getText().insert(cursorPosition, smileys[0]);
SpannableStringBuilder ssb = new SpannableStringBuilder(mOutEditText.getText());
ssb.setSpan(new ImageSpan(bitmapArray.get(0), ImageSpan.ALIGN_BASELINE), cursorPosition, cursorPosition+2, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
mOutEditText.setText(ssb, BufferType.SPANNABLE);
mOutEditText.setSelection(cursorPosition+2);
dialog_emoticon.dismiss();
}
});
dove è possibile risolvere il problema? – noxius
Sì, io ero come vedi nella risposta accettata – erdomester