How can i do this?
something:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
How can i do this?
something:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
If, for some strange reason, you can't use Asahi's suggestion (using tags), my proposition would be the following:
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 ...
view instanceof ListView
is false
, it means your view is not a ListView
. –
Convenance I tried the following and it worked:
View view = FLall.getChildAt(i);
Log.i("ViewName", view.getClass().getName());
For Kotlin, the equivalent code is
val view: View = FLall.getChildAt(i);
Log.i("ViewName", view.javaClass.name);
For Others who check this Question,in some cases instanceof
does not work(I do not know why!),for example if your want to check if view type is ImageView
or ImageButton
(i tested this situation) , it get them the same, so you scan use this way :
//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;
}
You can use tag for that purpose:see set/getTag methods at http://developer.android.com/reference/android/view/View.html
I am using this solution for KOTLIN code, so going off of Arash's solution:
if(v.javaClass.name.equals("android.widget.ImageView", ignoreCase = true)) ...
using this didn't work for me, but tweaking it to:
if(v.javaClass.name.contains("ImageView", ignoreCase = true)) ...
worked for me!
In Kotlin you can check this by using "is":
val view = findViewById<View>(R.id.a_view)
if (view is ImageView) {
print("This is a ImageView")
} else {
print("This is not a ImageView")
}
In Android Xamarin, This is how Android get type of a view and compare with controller type.
var view = FindViewById<TextView>(Resource.Id.emailText);
if (typeof(TextView).IsInstanceOfType(view))
{
var textView = (TextView)view;
}
© 2022 - 2024 — McMap. All rights reserved.