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?
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
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With