Différentes mises en ligne dans la ListView

Ce poste est liée à ce ViewHolder ne fonctionne pas. Sur ce poste, j'ai suivi un tutoriel sur la façon d'utiliser ViewHolder sur un ListView. Ce que je veux maintenant, c'est d'avoir le dernier élément sur un ListView d'avoir une mise en page différente que le reste. Voici mon code:

int lastpos = mList.size()-1;
          System.out.println("position: "+position+" mlist: "+lastpos);

          if(position==lastpos){
           view = vi.inflate(R.layout.list_item_record, null);
           holder.textView = (TextView)view.findViewById(R.id.record_view);
          }else{
           view = vi.inflate(R.layout.list_item_bn, null);
           holder.textView = (TextView)view.findViewById(R.id.tv_name);
          }
          view.setTag(holder);

Je viens d'obtenir le ListView taille de moins 1 et avoir une condition qui vérifie si la position actuelle est égal au dernier élément. Toutefois, ce code définit le dernier élément de mise en page comme les autres. getView méthode code complet:

private class CustomListAdapter extends ArrayAdapter { 
private ArrayList mList;
private Context mContext;
public CustomListAdapter(Context context, int textViewResourceId,
ArrayList list) {
super(context, textViewResourceId, list);
this.mList = list;
this.mContext = context;
}   
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ToggleButton tb;
if (view == null) {
ViewHolder holder = new ViewHolder();
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int lastpos = mList.size()-1;
System.out.println("position: "+position+" mlist: "+lastpos);
if(position==lastpos){
view = vi.inflate(R.layout.list_item_record, null);
holder.textView = (TextView)view.findViewById(R.id.record_view);
}else{
view = vi.inflate(R.layout.list_item_bn, null);
holder.textView = (TextView)view.findViewById(R.id.tv_name);
}
view.setTag(holder);
}
final ItemsDisplay listItem = (ItemsDisplay) mList.get(position);
if (listItem != null) {
ViewHolder holder1 = (ViewHolder)view.getTag();
holder1.textView.setText(listItem.getTag());
view.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) { //--clickOnListItem
Toast.makeText(getBaseContext(),
"Button is "+position+" "+listItem.getTag(),
Toast.LENGTH_LONG).show();
}
});
tb  = (ToggleButton) view.findViewById(R.id.toggleButton);
tb.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(tb.isChecked()){
Toast.makeText(getBaseContext(),
"Button is "+position+" checked:"+tb.isChecked()+" "+listItem.getTag(),
Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getBaseContext(),
"Button is "+position+" checked:"+tb.isChecked()+" "+listItem.getTag(),
Toast.LENGTH_LONG).show();
}
}
});
}
return view;  
}
}

Quelqu'un pourrait-il m'aider?

collez votre plein code d'adaptateur...
ajouté. c'est le code complet.
si la boucle est d'appeler vérifier comme si(...){Syso("si la boucle")}
veuillez vérifier le Système de la..println("position: "+position+" mlist: "+lastpos); " dans n'importe quelle position de l'imprimer.

OriginalL'auteur antonoVodka | 2012-03-12