2016-05-17 17 views
0

Ich habe eine TextView, die eine Liste von Komma getrennten Telefonnummern enthält. dh (917) 234-5678, (917) 423-2312 etcAndroid TextView Zeilenumbruch

Das Problem ist, dass die Textview Linie auf Räume zu brechen, so dass ich so etwas wie diese:

|(917) 234-5678, (917) 456-8290, (917)| 
|423-2313        | 

Gibt es eine Möglichkeit eine hinzufügen "unsichtbares" Zeichen, das verhindert, dass der TextView die Mitte der Telefonnummer unterbricht, oder alternativ eine andere Art zu steuern, wo die Zeile bricht?

UPDATE: Eine andere Anmerkung, die Strings sind unbekannt, so kann ich nicht einfach Zeilenumbrüche an der richtigen Stelle hinzufügen.

+2

Mögliche Duplikat [Android und   in Textview] (http://stackoverflow.com/questions/6564794/android-and-nbsp-in-textview) – comrade

+0

Eine erweiterbare Listenansicht ist eine mögliche Lösung – Pomagranite

Antwort

0

können Sie nach jedem Komma einen Zeilenumbruch hinzufügen. Zum Beispiel:

String phoneNumbers = .... your numbers 
phoneNumbers.replace(",", ",\n"); // this adds a line break after all commas 

Update:

nach Kommentar, vielleicht sollten Sie die zusätzlichen Leerzeichen entfernen, die Mitte der Zahl passieren. Etwas wie:

phoneNumbers.replace(" ", "").replace(",", ", "); // remove all the spaces and re-add one space after the comma, that way auto-line break only happens in-between numbers 

Der Punkt ist, dass Textview keine Funktion hat, wie es bricht Linien zu ändern. Ihre Lösung muss also darauf angewiesen werden, dass eine Zeichenkette an sie übergeben wird, damit sie besser mit der Art und Weise, wie sie behandelt wird, kompatibel ist.

+0

nur die Frage aktualisiert, das würde funktionieren, aber in meinem Fall gibt es tatsächlich mehrere Zahlen, die passen, bevor der Bruch passiert –

+0

überprüfen Sie bitte bearbeiten. – Budius

0

Ich denke, Ihr Problem ist eine TextView mit konstanter Breite. Haben Sie versucht, die TV-Breite auf wrap_content einzustellen?

+0

Die TextView ist wrap_content auf der Höhe, aber es passt zu der Breite match_parent. Ich möchte, dass der Text, der größer ist als die Ansicht, umbrochen wird. –

+0

Dann vergrößern Sie die Breite des übergeordneten Elements. – Alvin

0

Sie können so etwas wie yourPhoneText.replace(") ", ")");

More example is here.

+0

Ich dachte darüber nach, aber es ist eine Art Hack, und die Nummern sehen irgendwie komisch aus, ich kann darauf zurückgreifen, wenn es keinen besseren Weg gibt. –

0

Dank tun für den Hinweis auf die damit verbundene Frage nach @comrade. dies tun:

number.replace(" ", "\u00A0") 

auf jeder Nummer, bevor sie mit Komma verketten konnte ich den Zeilenumbruch erhalten, wie beabsichtigt zu arbeiten.