2013-04-15 5 views

Répondre

0

Contrairement à mon previous answer Je suppose que vous voulez que chaque TextView pour afficher des données différentes, donc nous allons ajouter un nouveau membre à votre adaptateur et accesseurs appropriés à votre adaptateur:

private SparseArray<String> secondary = new SparseArray<String>(); 

public String getSecondary(int position) { 
    return secondary.get(position, ""); 
} 
public void setSecondary(int position, String value) { 
    secondary.put(position, value); 
    notifyDataSetChanged(); // Updates the ViewGroup automatically! 
} 

SpareArrays sont mieux définit sans index prévisible, mais vous pouvez utiliser une liste, HashMap, etc si vous voulez quelque chose de différent. Maintenant tweak onListItemClick() d'utiliser les nouvelles méthodes:

protected void onListItemClick(ListView l, View v, int position, long id) { 
    String clickedPosition = "Clicked position = " + position; 
    mAdapter.setSecondary(position, clickedPosition); 
} 

jour Enfin getView() pour montrer textClickedPosition que lorsque secondary a données:

TextView textView = (TextView) view.findViewById(R.id.textPosition); 
textView.setText(event); 

textView = (TextView) view.findViewById(R.id.textClickedPosition); 
String string = getSecondary(position); 
if(!string.isEmpty()) { 
    textView.setText(string); 
    textView.setVisibility(View.VISIBLE); 
} 
else // You must hide the view otherwise you will see odd behavior for the recycle method 
    textView.setVisibility(View.GONE); 

return view; 

Sur une note finale, vous vraiment devriez regarder le Google I/O conférences comme Turbo Charge your UI ils contiennent une mine de connaissances!

+1

Merci! L'autre partie est ce qui me manquait :) et j'ai regardé la première partie de la conférence (ma mise en œuvre a même un ViewHolder maintenant), je serai sûr de regarder le reste dès que possible! – Piovezan