Tôi đang xây dựng một ứng dụng trò chuyện đơn giản, nơi người dùng có khả năng gửi văn bản và biểu tượng cảm xúc. Tôi có thể gửi cả văn bản và biểu tượng cảm xúc cho một điện thoại khác. vấn đề của tôi là:Văn bản bị rối loạn với ImageSpan trong EditText
1. Khi tôi gõ một cái gì đó và thêm một biểu tượng cảm xúc:
Sau đó, tôi không thể gõ bất kỳ văn bản ngay trước và ngay sau khi hình ảnh. Tôi có thể viết trước chữ "o". Hệ thống "nhìn thấy" mà tôi gõ, vì vậy ngay cả khi tôi gõ "mật ong" sau khi cười, tôi không thể nhìn thấy nó, nhưng EditText đăng ký nó và thông điệp được gửi:
2.When Tôi chỉ thêm một biểu tượng cảm xúc cho Edittext sau đó tôi xóa nó, tôi không thể gõ bất cứ điều gì vì biểu tượng cảm xúc đã xóa xuất hiện. Nó chỉ xuất hiện một lần, vì vậy bất kể có bao nhiêu ký tự tôi nhập, EditText trông giống như trước khi tôi xóa biểu tượng cảm xúc, NHƯNG văn bản được gửi mà không có biểu tượng cảm xúc, giống như trong cả ba trường hợp.
3. Khi tôi gõ "cái gì đó" trong EditText sau đó chèn một biểu tượng cảm xúc sau khi "một số":
Sau đó, tôi đưa con trỏ sau khi biểu tượng cảm xúc và xóa nó, ở đây những gì còn lại :
Nhưng sứ điệp chính xác được gửi đi khi tôi bấm nút gửi:
Đó là những gì bên trong trình nghe nút của biểu tượng cảm xúc (phương pháp này được kích hoạt khi tôi nhấp vào biểu tượng cảm xúc để thêm nó vào 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();
}
});
nơi bạn có thể khắc phục? – noxius
Vâng tôi đã thấy như bạn thấy trong câu trả lời được chấp nhận – erdomester