2016-06-15 6 views
0

Ich bekomme einen Fehler (Ebene überschreitet max Dimensionen) immer wenn ich nur einen großen String in eine Textansicht einfügen und dann als Element einer Listview hinzufügen. Hier ist mein list_item_simple_black_tv.xmlBerechnen Sie Zeilen, die für mehrzeilige Textansicht mit gegebener Textgröße benötigt werden

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tv" 
android:textColor="@android:color/white" 
android:layout_width="match_parent" 
android:gravity="center" 
android:layout_height="wrap_content" 
android:textSize="30dp" 
android:singleLine="false" 
android:scrollHorizontally="false" 
android:ellipsize="end" 
android:minLines="1" 
android:maxLength="100" 
/> 

ich dann versuchen, es in einem Layout zu einer Liste hinzuzufügen, die wie folgt aussieht: enter image description here Der Code, den ich verwende, um die Liste zu füllen ist:

String[] specialOffers = shop.getSpecialOffers().split("~");//this is the means of grabbing data. I have tested it and its valid 
    ListView specialOffersListView = (ListView) findViewById(R.id.specialOffersList); 
    ArrayAdapter<String> specialOffersListViewAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.list_item_simple_black_tv, specialOffers); 
    specialOffersListView.setAdapter(specialOffersListViewAdapter); 
    specialOffersListView.setClickable(false); 
    specialOffersListViewAdapter.notifyDataSetChanged(); 

Nach weiterer Untersuchung von mir schloss ich, dass, wenn ich ein Array, das eine große Zeichenfolge enthält, die App abstürzen kann, weil der Text "zu viel nach rechts geht" und nicht automatisch mehrzeilig, um die Liste anzupassen.

+0

Sie maxLength Eigenschaft verwendet haben, es könnte die problrm –

+0

Sie verursachen danken es funktioniert. Gibt es eine spezielle Methode, um den richtigen Wert zu berechnen? –

+0

Verwenden Sie die textView.getLineCount() -Methode zum Zählen der Zeilenanzahl. –

Antwort

0

Fügen Sie diese Zeile

android:singleLine="true" 

Statt

android:singleLine="false" 
Verwandte Themen