Lasst uns sagen, dass ich ein Kommentar wie diese machen: Hallo Andrea check this out ..... In diesem Kommentar Ich möchte Andrea markieren, aber wenn ich das ändern Wert von Andrea oder wenn ich ein Zeichen des Wortes der Spanne Änderungen löschen, ist das Problem, dass ich ist spannableString.setSpan(new StyleSpan(Typeface.BOLD), indexOfAt, highlightName.length() + indexOfAt, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
mit, was Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
Worte in der Mitte und löschen von Worten akzeptiert, wie ich die Spanne entfernen kann, wenn der Benutzer das Wort ändert oder löschen Sie ein Zeichen des Wortes?Entfernen Spanne, wenn der Text innerhalb der Spanne in Android geändert wird
Antwort
Sie müssen auf Textänderung auf dem Text bearbeiten. die EditText
Angenommen, Sie verwenden als commentEditText
genannt
commentEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String comment = editable.toString();
if (comment.indexOf('@') != -1) {
//Asumming the name string
String name = "Andrea";
int atIndex = comment.indexOf('@');
int endIndex = atIndex + name.length() + 1;
if (endIndex == -1 || endIndex > editable.length()) {
endIndex = editable.length();
}
if (comment.toLowerCase().contains(name.toLowerCase())) {
editable.setSpan(new StyleSpan(Typeface.BOLD), atIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} else {
StyleSpan[] spannable = editable.getSpans(atIndex, endIndex, StyleSpan.class);
if (spannable != null && spannable.length > 0) {
for (int i = 0; i < spannable.length; i++) {
editable.removeSpan(spannable[i]);
}
}
}
}
}
});
Sie können TextWatcher versuchen, für diese, einfach TextWatcher auf die Textview Sie oben erreichen wollen hinzufügen und in auf
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//Do some magic here
}
Nun, wenn Benutzertypen oder löscht alle Zeichen Sie einen Rückruf bei diesem Verfahren erhalten wird nach dem Empfangen dass du deine Spannweite zurücksetzen kannst.
erklärte die Grundidee war, einen Rückruf für Textänderung zu bekommen, die hier erreicht wird. –
Wenn Sie die SpannableString
Sie verwenden haben die ganze Sache bei jeder Änderung neu zu erstellen.
Sie können Spannweiten entfernen, aber man kann nicht die Quelle ändern (Kommentar), weil SpannableString
Quelltext unveränderlich ist.
Ich schlage vor, bei jeder Änderung des Kommentars erstellen Sie die , suchen Sie nach Namen und markieren Sie sie, dann, wenn der Kommentar ändert, wiederholen Sie die gleiche Sache mit einem neuen . Es wird keine Leistungsprobleme geben, da die Kommentare klein sind.
Wenn Sie ein veränderbares Objekt haben möchten, können Sie das SpannableStringBuilder
verwenden, aber es ist komplizierter und es gibt keine Notwendigkeit dafür.
Ich kann mehr helfen, wenn Sie etwas Code freigeben – MaanooAk
- 1. Checkbox innerhalb der Spanne
- 2. Matching Eingabewert mit Text innerhalb der Spanne
- 3. Leerzeichen einfügen innerhalb Spanne in Text nicht
- 4. Entfernen der Verbindung von der zweiten Spanne
- 5. Text innerhalb der Spanne an der Oberseite des Behälters ausrichten
- 6. Warum der modale Dialog "Winkelmaterial" wird erweitert, wenn sich Text innerhalb der Spanne befindet?
- 7. Entfernen Sie einen Tag Textstil innerhalb der Spanne
- 8. Selen Gurke Text innerhalb einer Spanne
- 9. Bootstrap Link innerhalb der Spanne überlappen div
- 10. Text unterhalb der absoluten Spanne zentrieren
- 11. Xpath - Zieltext innerhalb einer Spanne
- 12. Div gemäß der Spanne innerhalb der div, um die Größe
- 13. Subtrahieren der Nummer in der Spanne
- 14. Set Rand der Spanne, wenn es einem cetain Text enthält
- 15. Jquery mehrere Spanne von einer Spanne
- 16. Wie wenige Spanne der untereinander
- 17. jsoup Spanne Spanne Rückkehr als Einzel bject
- 18. Cant Änderung Spanne Text in ajaxStart
- 19. Wie Klasse und Spanne Text
- 20. Align-Taste in Spanne
- 21. Problem Spanne in HTML
- 22. Erhalten Sie einen Text in der Spanne, mit Winkelmesser
- 23. Show/Hide span basierend auf einem Artikel innerhalb der Spanne
- 24. array_unique entfernen doppelte Werte in Spanne
- 25. JSF h: Link wird Spanne
- 26. Xpath - Abrufen von Text innerhalb einer Spanne mit mailto href
- 27. jQuery - Zunahme/Abnahme-Wert der Spanne
- 28. Spaces funktioniert nicht auf der vorhandenen Spanne
- 29. So erhalten Sie einen Text innerhalb einer Spanne mit einer Klasse. (innerhalb der for-Schleife)
- 30. Make Spanne klickbare innerhalb einer klickbaren Reihe
Eine Geige oder Code wird hilfreich sein, diese zu beantworten. – Shuddh