2009-09-09 5 views
4

Ceci est une question stupide et je sais que la réponse est assis en face de moi, j'ai juste du mal à le chercher de la bonne façon.Get Android View Instance

J'ai une vue personnalisée qui a été définie comme vue du contenu et gonflée à partir de xml. Comment puis-je accéder à l'instance pour appeler des méthodes à partir de la classe d'activité? Je me souviens avoir vu quelque chose ressemblant à getResourceById() il y a quelque temps, mais maintenant je n'arrive pas à le trouver et je ne suis même pas sûr que ce soit la meilleure façon de le faire.

Désolé pour la question stupide.

Répondre

8

Si vous avez utilisé un gonfleur, vous recevrez une instance d'une classe View. Vous utilisez alors votre instance comme

LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
row = li.inflate(R.layout.small_listview_row, null); 

TextView tvItemText = (TextView)row.findViewById(R.id.tvItemText); 
+0

Ah, cela aurait du sens, alors gonfler manuellement, puis définir la vue de contenu avec cette nouvelle instance est la meilleure façon de faire les choses si je vais avoir besoin d'accès à cette vue? –

+10

Une autre alternative est juste de mettre un android: id sur l'élément racine de la mise en page XML, puis appelez findViewById() pour cela. Puisque la vue racine doit être la première chose que findViewById() vérifie, elle répondra rapidement. – CommonsWare

+0

Qui a voté contre ma réponse devrait fournir une explication. – MattC