Text wird in EditText mit ImageSpan vermischt

8

Ich erstelle eine einfache Chat-App, in der der Benutzer Text und Emoticons senden kann. Ich kann sowohl Text als auch Emoticons an ein anderes Telefon senden. Meine Probleme sind:

1.Wenn ich etwas eintippe und ein Emoticon hinzufüge:

Dann kann ich keinen Text direkt vor und nach dem Bild eingeben. Ich kann vor dem "o" schreiben. Das System "sieht" das ich eintippe, also selbst wenn ich nach dem Smiley "Honig" tippe, kann ich es nicht sehen, aber der EditText registriert es und die Nachricht wird gesendet:

2.Wenn ich dem Edittext nur ein Emoticon hinzufüge, lösche ich es dann . Ich kann nichts tippen, weil das gelöschte Emoticon erscheint. Es erscheint nur einmal, egal wie viele Zeichen ich eintippe, der EditText sieht aus wie vor dem Löschen des Emoticons, ABER der Text wird ohne das Emoticon gesendet, wie in allen drei Fällen.

3.Wenn ich "etwas" in den EditText eintippe, dann füge ein Emoticon nach "etwas" ein:

Dann lege ich den Cursor nach dem Emoticon und lösche es, hier was übrig ist:

Aber die richtige Nachricht wird gesendet, wenn ich die Senden-Taste drücke:

Das ist, was sich in dem Button-Listener des Emoticons befindet (diese Methode wird aktiviert, wenn ich auf das Emoticon klicke, um es dem EditText hinzuzufügen).

%Vor%     
erdomester 13.12.2012, 20:21
quelle

2 Antworten

6
___ qstnhdr ___ Text wird in EditText mit ImageSpan vermischt ___ answer13868111 ___

Ich würde einen Textwatcher zu diesem Bearbeitungstext hinzufügen und sehen, wie der Benutzer tippt, auf diese Weise kann ich die Bilder neu positionieren / den Text setzen / Korrekturen vornehmen / Eingaben validieren / etc.

%Vor%     
___ antwort13882530 ___

Ich habe die Lösung gefunden. Ich musste nur Spannable.SPAN_INCLUSIVE_INCLUSIVE in Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

ändern     
___ tag123spannablestring ___ Android - SpannableString ist eine Klasse für Text, dessen Inhalt unveränderlich ist, an den aber Markup-Objekte angehängt und entfernt werden können. ___ tag123androidedittext ___ Der EditText ist das Standard-Texteingabe-Widget in Android-Apps. Wenn der Benutzer Text in eine App eingeben muss, ist dies die primäre Möglichkeit für sie. ___ qstntxt ___

Ich erstelle eine einfache Chat-App, in der der Benutzer Text und Emoticons senden kann. Ich kann sowohl Text als auch Emoticons an ein anderes Telefon senden. Meine Probleme sind:

1.Wenn ich etwas eintippe und ein Emoticon hinzufüge:

Dann kann ich keinen Text direkt vor und nach dem Bild eingeben. Ich kann vor dem "o" schreiben. Das System "sieht" das ich eintippe, also selbst wenn ich nach dem Smiley "Honig" tippe, kann ich es nicht sehen, aber der EditText registriert es und die Nachricht wird gesendet:

2.Wenn ich dem Edittext nur ein Emoticon hinzufüge, lösche ich es dann . Ich kann nichts tippen, weil das gelöschte Emoticon erscheint. Es erscheint nur einmal, egal wie viele Zeichen ich eintippe, der EditText sieht aus wie vor dem Löschen des Emoticons, ABER der Text wird ohne das Emoticon gesendet, wie in allen drei Fällen.

3.Wenn ich "etwas" in den EditText eintippe, dann füge ein Emoticon nach "etwas" ein:

Dann lege ich den Cursor nach dem Emoticon und lösche es, hier was übrig ist:

Aber die richtige Nachricht wird gesendet, wenn ich die Senden-Taste drücke:

Das ist, was sich in dem Button-Listener des Emoticons befindet (diese Methode wird aktiviert, wenn ich auf das Emoticon klicke, um es dem EditText hinzuzufügen).

%Vor%     
___ tag123spannable ___ Ein Android Spannable ist eine Schnittstelle für Text, auf den Markup-Objekte angewendet werden können. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___
erdomester 14.12.2012, 16:22
quelle
0

Ich würde einen Textwatcher zu diesem Bearbeitungstext hinzufügen und sehen, wie der Benutzer tippt, auf diese Weise kann ich die Bilder neu positionieren / den Text setzen / Korrekturen vornehmen / Eingaben validieren / etc.

%Vor%     
logray 13.12.2012 20:40
quelle