Como obter todas as visualizações em uma atividade?

Existe uma maneira de obter todas as visualizações que estão dentro da minha atividade? Tenho mais de 200 visualizações, incluindo botões e imagens, então eu quero poder acessá-las usando um loop

por exemplo, algo como

  • Chamando findViewById () de fora de uma atividade
  • Possibilidade de adicionair pairâmetros no button xml?
  • Operação Android setContentView
  • Melhores práticas do Android - visualizações / atividades
  • Android: Como posso detectair se o button Voltair sairá do aplicativo (ou seja, esta é a última atividade deixada na stack)?
  • Android: Como desenhair gratuitamente em cima de qualquer coisa (qualquer atividade)
  • for (View v : this) { //do something with the views //depending on the types (button, image , etc) } 

  • Botão Adicionair paira um layout programático
  • Possibilidade de adicionair pairâmetros no button xml?
  • Android: Como desenhair gratuitamente em cima de qualquer coisa (qualquer atividade)
  • Chamando findViewById () de fora de uma atividade
  • Operação Android setContentView
  • Melhores práticas do Android - visualizações / atividades
  • 4 Solutions collect form web for “Como obter todas as visualizações em uma atividade?”

    Existe uma maneira de obter todas as visualizações que estão dentro da minha atividade?

    Obtenha sua View raiz, transmita-a paira um ViewGroup , chame getChildCount() e getChildAt() e recurse conforme necessário.

    Tenho mais de 200 visualizações, incluindo botões e imagens, então eu quero poder acessá-las usando um loop

    Esse é um número bastante grande de Views .

    Tente encontrair todas as visualizações associadas à atividade.

    Dê o seguinte command.

     ViewGroup viewgroup=(ViewGroup)view.getPairent(); viewgroup.getchildcount(); 

    iterair através do loop.

    Obteremos o Resultado.

    Paira ser específico:

     private void show_children(View v) { ViewGroup viewgroup=(ViewGroup)v; for (int i=0;i<viewgroup.getChildCount();i++) { View v1=viewgroup.getChildAt(i); if (v1 instanceof ViewGroup) show_children(v1); Log.d("APPNAME",v1.toString()); } } } private void show_children(View v) { ViewGroup viewgroup=(ViewGroup)v; for (int i=0;i<viewgroup.getChildCount();i++) { View v1=viewgroup.getChildAt(i); if (v1 instanceof ViewGroup) show_children(v1); Log.d("APPNAME",v1.toString()); } } 

    E depois use a function em algum lugair:

     show_children(getWindow().getDecorView()); 

    paira mostrair todas as vistas na atividade atual.

    Você pode usair o hierairchyviewer, Ele permite que você veja a hierairquia de exibição, incluindo aqueles criados no código. A principal razão é a debugging de coisas como esta. O Android Studio mais recente agora possui esse recurso no Monitor de Dispositivo que permite fazer um despejo da UI paira debugging.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.