Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find all views with tag?

Tags:

android

I am looking to find all the views in a specified activity that have the tag "balloon" for example then hide them using setVisibility to GONE.

Does anyone know how to retrieve a list of views with a given tag?

like image 245
Kevin Parker Avatar asked Feb 21 '11 04:02

Kevin Parker


2 Answers

Here you go:

private static ArrayList<View> getViewsByTag(ViewGroup root, String tag){     ArrayList<View> views = new ArrayList<View>();     final int childCount = root.getChildCount();     for (int i = 0; i < childCount; i++) {         final View child = root.getChildAt(i);         if (child instanceof ViewGroup) {             views.addAll(getViewsByTag((ViewGroup) child, tag));         }          final Object tagObj = child.getTag();         if (tagObj != null && tagObj.equals(tag)) {             views.add(child);         }      }     return views; } 

I've already answered it here :Android - how to find multiple views with common attribute

like image 63
Shlomi Schwartz Avatar answered Oct 09 '22 09:10

Shlomi Schwartz


You could set tags to your views in this way:

someView.setContentDescription("MyTag"); 

And then in order to find all views with that tag you need to call:

ArrayList<View> outputViews = new ArrayList<>(); rootView.findViewsWithText(outputViews, "MyTag", FIND_VIEWS_WITH_CONTENT_DESCRIPTION);  
like image 25
CookieMonster Avatar answered Oct 09 '22 07:10

CookieMonster