Android получает вид вида
Как я могу это сделать?
что-то:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
Ответы
Ответ 1
Если по какой-то странной причине вы не можете использовать предложение Asahi (используя теги), мое предложение будет следующим:
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 ...
Ответ 2
Я пробую следующее, и он сработал:
View view=FLall.getChildAt(i);
Log.i("ViewName", view.getClass().getName());
Ответ 3
Для тех, кто проверяет этот вопрос, в некоторых случаях instanceof
не работает (я не знаю, почему!), например, если вы хотите проверить, есть ли тип просмотра ImageView
или ImageButton
(я тестировал это ситуация), они получают их одинаковые, поэтому вы сканируете их следующим образом:
//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;
}
Ответ 4
Вы можете использовать тег для этой цели: см. методы set/getTag в http://developer.android.com/reference/android/view/View.html