Comment puis-je faire ceci?
quelque chose:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
Si, pour une raison étrange, vous ne pouvez pas utiliser la suggestion de Asahi (en utilisant des balises), ma proposition serait la suivante:
if (view instanceof ImageView) {
ImageView imageView = (ImageView) view;
// do what you want with imageView
}
else if (view instanceof TextView) {
TextView textView = (TextView) view;
// do what you want with textView
}
else if ...
J'essaie ce qui suit et cela a fonctionné:
View view=FLall.getChildAt(i);
Log.i("ViewName", view.getClass().getName());
Pour les autres qui vérifient cette question, dans certains cas, instanceof
ne fonctionne pas (je ne sais pas pourquoi!), Par exemple si vous souhaitez vérifier si le type de vue est ImageView
ou ImageButton
(j'ai testé cette situation), il les obtient de la même manière, vous pouvez donc utiliser la numérisation de cette façon:
//v is your View
if (v.getClass().getName().equalsIgnoreCase("Android.widget.ImageView")) {
Log.e("imgview", v.toString());
imgview = (ImageView) v;
} else if (v.getClass().getName().equalsIgnoreCase("Android.widget.ImageButton")) {
Log.e("imgbtn", v.toString());
imgbtn = (ImageButton) v;
}
Vous pouvez utiliser la balise à cet effet: voir les méthodes set/getTag sur http://developer.Android.com/reference/Android/view/View.html