2016-04-11 10 views
-1

Jedes Tutorial, das ich bisher versucht habe zu folgen, hat versucht, einen LayoutInflator innerhalb des getView() in meinem CustomAdapter zu verwenden.ListView - Custom Adapter ohne LayoutInflator

Der LayoutInflator erscheint nicht für mich und ich bekomme nur die Optionen von LayoutInflatorCompat oder LayoutFactory.

Kann mir jemand helfen, die Daten aus dem Benutzerobjekt, das ich erstellt habe, herauszunehmen und es auf die 2 entsprechenden Textfelder in meiner rowlayout.xml zu setzen?

Ich nehme an, dass dies noch innerhalb meiner getView() - Methode in meinem UserAdapter getan werden muss.

Benutzer hat nur 2 Strings, Name und Beschreibung. Mein rowlayout hat tv_name, tv_description.

public class UserAdapter extends BaseAdapter { 


ArrayList<user> list; 
Context context; 

public UserAdapter(Context c,ArrayList<user> list) 
{ 
    context = c; 
    this.list = list; 

} 

@Override 
public int getCount() { 
    return list.size(); 
} 

@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    return null; 
} 

} 
+0

was meinst du es taucht nicht für dich auf? – Pooya

+0

Es ist keine Option als Variable. Vielleicht werde ich meinen Computer zurücksetzen und sehen, ob es auftaucht:/ – NewToAnroid

+0

hinzufügen importieren android.view.LayoutInflater; oben und sehen, ob es hilft – Pooya

Antwort

0

aufpumpen das gewünschte Layout in das convertView die LayoutInflater und Ihre Context verwenden und dann können Sie, dass die TextView s zu erhalten verwenden und den Text, das so etwas wie:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if(convertView == null) { 
      convertView = LayoutInflater.from(context).inflate(R.layout.your_layout, parent, false); 
      TextView tvName = (TextView) convertView.findViewById(R.id.tv_name); 
      TextView tvDescription = (TextView) convertView.findViewById(R.id.tv_description); 

      User user = users.get(position); 
      tvName.setText(user.getName()); 
      tvDescription.setText(user.getDescription()); 
     } 
     return convertView; 
    }