私は、ユーザーがテキストと顔文字を送信できる単純なチャットアプリケーションを構築しています。私はテキストと顔文字の両方を別の電話に送ることができます。私の問題は、次のとおりです。テキストがEditTextでImageSpanで台無しになっている
1.When私が何かを入力して絵文字を追加します。
は、それから私は、画像の後に右の前に、右の任意のテキストを入力することはできません。私は "o"手紙の前に書くことができます。
たら、2.を:システムは、I型、私は笑顔の後に「ハニー」と入力した場合でも、私はそれを見ることはできませんが、のEditTextがそれを登録し、メッセージが送信されることを「見ます」 Edittextに絵文字を追加してからを削除すると、削除された絵文字が表示されるので、何も入力できません。一度しか表示されないので、入力した文字の数に関係なく、EditTextは、絵文字を削除する直前のように見えますが、3つの場合と同様に、絵文字なしでテキストが送信されます。
3.When私は「いくつかの」の後に絵文字を挿入し、その後のEditTextに「何か」を入力します。
その後、私は顔文字の後にカーソルを置き、残っているもの、ここで、それを削除:
しかし、私は送信ボタンを押したときに正しいメッセージが送信されます。
(私はの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();
}
});
に修正することでした。 – noxius
はい私はあなたが受け入れられた答えで見たとおりだった – erdomester