Ответ 1
Мне удалось добраться до содержимого Activity с помощью этого вызова:
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(), "");