Percorrer objetos tela – troca de cor

79 views
Skip to first unread message

Cristian Cardoso

unread,
May 24, 2012, 7:49:52 PM5/24/12
to Android Brasil - Dev
Boa noite!
Existe alguma forma de percorrer todos os objetos de um determinado
layout?
Exemplo:
http://pastebin.com/up16evEg

gostaria de pegar todos os “TextView” que tiver nesta tela, tipo um
“findViewById” so que passo por parâmetro o tipo de objeto (TextView,
EditText, Button etc..etc..) e que me retorne um array com todos os
objetos que possa percorrer e tratar conforme a necessidade.

Para que isso?

O usuário vai poder escolher a cor de fundo do APP hoje estou dando um
“findViewById” para cada item que quero trocar a cor.. e dessa forma
troco. só que isso “não atende”, sim funciona, mas é trabalhoso.

Alguém tem alguma dica de como resolver isso?

não tenho nem ideia de por onde iniciar...

Forte Abraço.
Cristian Cardoso

Douglas Alípio

unread,
May 24, 2012, 11:24:35 PM5/24/12
to androidb...@googlegroups.com
Eu não sei fazer isso pelo XML não... mas se eu fosse você, montaria essa tela dinamicamente através do código java mesmo.
--







Atenciosamente,
Douglas Alípio Mesquita


Alex Baule

unread,
May 24, 2012, 11:31:22 PM5/24/12
to androidb...@googlegroups.com

Acho q desse jeito vc pega tudo, ai é só ver o que é o que e mudar a cor.

http://stackoverflow.com/questions/7784418/get-all-child-views-inside-linearlayout-at-once

use getChildCount() and also getChildAt() like this may be

int childcount = ll.getChildCount();
for (int i=0; i < childcount; i++){
     
View v = ll.getChildAt(i);
}



Neto Lima

unread,
May 24, 2012, 11:32:52 PM5/24/12
to androidb...@googlegroups.com

Temas não resolvem seu problema?

Paulo BlasterX

unread,
May 25, 2012, 12:25:17 AM5/25/12
to androidb...@googlegroups.com
Acredito que um tema resolveria... mas de qq forma vou te dar uma luz que talvez possa ajudar no q vc quer tb..

LinearLayout letras = (LinearLayout) findViewById(R.id.linearLayoutLetras);
        ArrayList<View> touchables = letras.getTouchables();
        for(View touchable : touchables){
            if( touchable instanceof Button )
                ((Button)touchable).setEnabled(status);
        }


Com isso aí eu pegava tudo que era "tocável" na tela dentro de um layout.. talvez te de uma ajuda...

2012/5/25 Neto Lima <des...@gmail.com>

Temas não resolvem seu problema?


Buiu

unread,
May 25, 2012, 7:09:17 AM5/25/12
to androidb...@googlegroups.com
Caraca.... antes não tinha uma alternativa... agora tenho 2.. hehehehe

Muito obrigado ao Paulo e ao Alex, das 2 formas funcionou perfeito.

Muito obrigado a todos pela atenção.

Valeu gurizada.


2012/5/25 Paulo BlasterX <paul...@gmail.com>



--
Abraço
Cristian Cardoso
@CTNCardoso
http://ctncardoso.com.br

Thiago Lopes Rosa

unread,
May 25, 2012, 8:49:23 AM5/25/12
to androidb...@googlegroups.com

Buiu

unread,
May 25, 2012, 9:48:56 AM5/25/12
to androidb...@googlegroups.com
Grande Thiago, era essa a ideia mesmo... percorrer todos os atributos.

Ajudou bastante... 

Valeu.
Reply all
Reply to author
Forward
0 new messages