2012-03-31 21 views
0

ich ein Setup Listenansicht mit einem Layout XML für jede Zeile:Listview mit benutzerdefinierten Layout für jede Zeile

this.setContentView(R.layout.item_view); 

    ListView m_ListView = this.getListView(); 
    m_ListView.setTextFilterEnabled(true); 
    m_ListView.setItemsCanFocus(false); 
    m_ListView.setCacheColorHint(0x00000000); 
    mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    ArrayList<View> views=new ArrayList<View>(); 
    e = mInflater.inflate(R.layout.item_first, null); 

    views.add(e); 

    r = mInflater.inflate(R.layout.item_second, null); 

    views.add(r); 


    mAdapter = new SillyAdapter(views); 
    setListAdapter(mAdapter); 

jetzt zum Beispiel habe ich eine TextView in item_first, und ich will sie aus dem Code setzen:

TextView name = (TextView)findViewById(R.id.textView1); 
    name.setText(m_item.name); 

aber name ist immer null.eine idee warum es passiert?

+2

Können Sie den Code von SillyAdapter eingeben? Hast du getView im SillyAdapter implementiert? – Jeroen

Antwort

1

Sie müssen die folgenden Änderungen in Ihrem Code vornehmen.

TextView name = (TextView)e.findViewById(R.id.textView1); 
name.setText(m_item.name); 

Sie erhalten Namen als null, da Sie findViewById Methode falsche Sicht fordern oder könnten von Aktivität anrufen. da Sie Aufblasen als

e = mInflater.inflate(R.layout.item_first, null); 

folgt man findViewById auf aufgeblasene Ansicht e verlangen. so dass Sie die Instanz von Textview mit id R.id.textView1 bekommen R.layout.item_first

Hoffnung in XML enthalten, das wird helfen.

+0

Ja, es war da, danke für die Hilfe – MTA

Verwandte Themen