2011-01-02 15 views
5

Basit ama zor biraz, benXzx1'i list.setAdapter içine nasıl koyarsınız?

list.setAdapter(new ArrayAdapter<String>(this,R.layout.double_row, R.id.doubleRow, articleItemsHelper)); 

articleItemsHelper dize ise çalışır, ancak HTML articleItemsHelper yazın bu (adaptör) Dağıtılmış zaman bu kadar gelmez orada biçimlendirme yapmak istiyorum varsa Çalışıyorum

ArrayList<Spanned> articleItemsHelper = new ArrayList<Spanned>(); 

Çözüm nedir?

DÜZENLEME: burada bir çözüm

list.setAdapter(new SpannedAdapter(this, articleItemsHelper)); 
articleItemsHelper 

ArrayList<Spanned> 

cevap

0

Bu ArrayAdapter satır metin oluşturma şekilleridir: Gördüğünüz gibi, bu durumda ne yapacağını toString yöntemi çağırmak için olduğunu ve çalışmıyor bu yüzden

T item = getItem(position); 
    if (item instanceof CharSequence) { 
     text.setText((CharSequence)item); 
    } else { 
     text.setText(item.toString()); 
    } 

. Öyleyse devam et ve kendi adaptörünü yaz, bu durumda başka seçeneğin yok.

+1

Ah, tnx. Çözümü üst yazıya gönderdim. – svenkapudija

+0

Gerçekten güzel dostum! – Cristian

0

Eski iplik ama bunu yapmak için başka bir yol buldum, bu insanlara yardımcı olabilir:

simpleAdpt = new ArrayAdapter<Note>(this, R.layout.notelist, listeNotes){ 
      public View getView(int position, View view, ViewGroup viewGroup) 
      { 
       View v = super.getView(position, view, viewGroup); 
       Note n = (Note) this.getItem(position); 
       ((TextView)v).setText(Html.fromHtml("<b>"+n.getTitre() + "</b> <br/>"+n.getNote())); 
       return v; 
      } 
    }; 
İlgili konular