Мне удалось добраться до содержимого Действия с помощью этого вызова:
ViewGroup view = (ViewGroup)getWindow().getDecorView();
Вероятно, вам следует проверить, что getDecorView возвращает экземпляр ViewGroup для всех случаев, но с LinearLayout в Activity приведенный выше код работает нормально. Чтобы добраться до LinearLayout, вы можете просто:
LinearLayout content = (LinearLayout)view.getChildAt(0);
А если у вас есть такая функция:
void logContentView(View parent, String indent) {
Log.i("test", indent + parent.getClass().getName());
if (parent instanceof ViewGroup) {
ViewGroup group = (ViewGroup)parent;
for (int i = 0; i < group.getChildCount(); i++)
logContentView(group.getChildAt(i), indent + " ");
}
}
Вы можете выполнять итерацию по всем представлениям и регистрировать их имена классов с помощью следующего вызова внутри вашей Деятельности:
logContentView(getWindow().getDecorView(), "");