2010-12-03 5 views
0

J'utilise la classe de vue custome ci-dessous et je veux changer l'icône ImageView quand quelqu'un sélectionne une vue dans ma liste dans onListItemClick. Comment puis-je obtenir la vue? Dans mon OnCreate, jeBesoin de changer un ImageView dans la classe ArrayAdapter personnalisée

iconicAdapter = new IconicAdapter(); 
    setListAdapter(iconicAdapter); 

Puis dans ma classe de vue personnalisée, je

class IconicAdapter extends ArrayAdapter { 
IconicAdapter() { 
    super(myApp.this, R.layout.row, title_list); 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater=getLayoutInflater(); 
    View row=inflater.inflate(R.layout.row, parent, false); 
    TextView title=(TextView)row.findViewById(R.id.list_title); 
    title.setText(title_list.get(position).toString()); 
    ImageView icon=(ImageView)row.findViewById(R.id.icon); 
    return(row); 
} 

}

Que dois-je besoin dans la méthode ci-dessous pour accéder à l'icône ImageView correcte dans mon classe de vue personnalisée? Ou devrais-je y accéder différemment?

public void onListItemClick(ListView parent, View v, int position, long id) { 
} 

Répondre

1

procédez comme suit:

public void onListItemClick(ListView parent, View v, int position, long id) { 
    ((ImageView)v.findViewById(R.id.icon)).setImageBitmap(anyBitmap); 
    //((YourCustomAdapter)getListAdapter()).notifyDataSetChanged(); 
    //or 
    //v.invalidate(); 
} 

plus tard, vous pouvez définir une ressource à votre point de vue de l'image, bitmap, étirables, etc.

acclamations

Questions connexes