2015-06-09 5 views
5

machen Ich möchte meine Textansicht multiline machen.Wie man eine TextView mehrzeilige programmatisch in Android (Java)

Image: http://s13.postimg.org/y0q78e1yv/Capture.png

Aber wie kann ich meinen Text mehrzeilige machen?

Welches Atribut?

TextView txt_tweet = (TextView) View.inflate(this, R.layout.special_textview, null); 

special_textview

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 

    android:paddingLeft="20dp" 
    android:paddingRight="20dp" 
    android:paddingBottom="5dp" 
    android:inputType="textMultiLine" 
    android:scrollHorizontally="false"> 

</TextView> 
+0

Bitte machen Sie ein wenig Forschung vor dem Posten solcher Fragen ... –

+0

@MurtazaKhursheedHussain Ich habe das Problem seit drei Tagen: http: // stackoverflow.com/questions/15032870/create-a-multiline-edittext-programmatisch ich überprüfte so etwas, ich denke, 10-20 Websites, aber es funktioniert nicht – mistermm

Antwort

3

Sie wollen verschiedene Texte zeigen, in der gleichen Textansicht? wenn ja, verwenden Sie zwei Textansichten wie:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 
</LinearLayout> 

Fern android: input = "textMultiLine", ist dies ein EditText atribute.

Wenn Sie gerade mehr als eine Zeile in der gleichen Textansicht verwenden möchten:

android:maxLines="5"//optional to set max numbers of lines 
android:minLines="2"//optional to set min numbers of lines 
android:singleLine="false"//set false to allow multiple line 
android:lines="2" //or more 

Wenn diese Textview Sie zu einem Listview gehört verwenden möchten, verwenden Sie einfach:

android.R.layout.simple_list_item_2 

Es gibt Ihnen zwei Texte, an denen Sie arbeiten können.

+0

Vielen Dank für Ihre Anser, ich habe jetzt alle auf lineare Layout geändert: http://s27.postimg.org/9mtnp5f3z/Capture.jpg?noCache=1433860180 auf dem Bild sehen Sie 3 Zeilen, die erste ist hardcoded, und die zweite und dritte ist mit meinem Code aus special_textview (ist die gleiche Textansicht wie die Hardcoded) – mistermm

-1

Entfernen Sie einfach die folgende Zeile:

android:inputType="textMultiLine" 

input für EditTexts

+0

nein, das funktioniert nicht:/es ist die gleiche Ansicht – mistermm

0

Die Textview muss das Attribut auf false gesetzt 'single' haben. Auch sollten Sie die 'ellipsize' gesetzt, den Text zu wickeln:

android:singleLine="false" 
android:ellipsize="end" 
+0

Jetzt, am Ende 3 Punkte erscheint, aber es auch in einer Zeile :( – mistermm

1

Sie können es wie folgt tun:

txt_tweet.setSingleLine(false); 
txt_tweet.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); 
+1

es funktioniert auch nicht ... – mistermm

+0

Ich verstehe Sie nicht Lösung in diesem Beitrag .... – delive

0

in Layout

android:lines="8" //Total Lines prior display 
android:minLines="6" //Minimum lines 
android:maxLines="10" //Maximum Lines 
+0

es funktioniert nicht kann es sein mit die Tabellenansicht? – mistermm

1

Ich habe es wie folgt:

tv.setElegantTextHeight(true); 
tv.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 
tv.setSingleLine(false); 
+0

Nach dem Versuch, viele t Diese Antwort funktionierte für mich. –

1

First "\n" mit seinen Html equavalent "&lt;br&gt;", dann rufen Html.fromHtml() auf die Zeichenfolge ersetzen. Befolgen Sie die nachstehenden Schritte:

String text= model.getMessageBody().toString().replace("\n", "&lt;br&gt;") 
textView.setText(Html.fromHtml(Html.fromHtml(text).toString())) 

Dies funktioniert einwandfrei.

0

Hinzufügen zu den Antworten: die Reihenfolge zählt!

Stellen Sie sicher, dass Sie setInputType vor setMinLines aufrufen!