2012-04-03 5 views
0

Ich versuche, einen ListAdapter zu verwenden, der eine benutzerdefinierte Ansicht für jede der Werbebuchungen haben kann. Zum Beispiel möchte ich eine Listenansicht, die etwas wie untenGibt es eine effiziente Möglichkeit, Android ListAdapter zu erstellen, wobei jede Werbebuchung eine benutzerdefinierte Ansicht hat?

item 1 {Bold} , 
item 2 {Italics}, 
item 3 {Normal font} 
item 4 {Normal font} 
item 5 {Normal font} 

Ich versuchte folgenden Code sieht aber, was passiert ist, wenn ich nach unten scrollen, Punkt 10 wird auch als fett und Punkt 11 als kursiv etc. gezeigt, die ich nicht wollen . Jetzt, nach dem Caching Teil des folgenden Code zu entfernen, es funktioniert (wie pro meinen Erwartungen, aber es scheint ein wenig langsam. Gibt es eine effiziente Möglichkeit, die gleichen

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html

holder.text.setText(DATA[position]); 
if (position == 1){ 
holder.text.setTypeface(Typeface.DEFAULT_BOLD); 
}else if (position == 2) { 
holder.text.setTypeface(Typeface.SERIF);  
}else if (position == 3){ 
holder.text.setTextSize(35); 
} 
+1

"reset" Schriftart und Textsize in anderen Fällen 'if() {} else {... Setup alle Sachen auf Standard}' ... jetzt soll es mit Caching – Selvin

+0

gefunden Lösung arbeiten : Sie müssen explizite Überprüfungen durchführen, um herauszufinden, ob der neue Fonttyp der erwartete ist. andernfalls das Layout neu aufladen – Shakti

Antwort

0

Versuche, dies zu erreichen Code:

holder.text.setText(DATA[position]); 
if (position == 1){ 
    holder.text.setTypeface(Typeface.DEFAULT_BOLD); 
}else if (position == 2) { 
    holder.text.setTypeface(Typeface.SERIF);  
}else{ 
    holder.text.setTextSize(35); 
} 
Verwandte Themen