Obtenir des éléments enfants à partir de LinearLayout

Est-il possible d’obtenir un élément enfant d’un LinearLayout? Mon code renvoie une vue (linearlayout), mais je dois avoir access à des éléments spécifiques à l’intérieur de la mise en page.

Aucune suggestion?

(Oui, je sais que je pourrais utiliser findViewById, mais je crée les mises en page / enfants en Java – pas XML).

Vous pouvez toujours faire quelque chose comme ceci:

LinearLayout layout = setupLayout(); int count = layout.getChildCount(); View v = null; for(int i=0; i 

Je pense que cela pourrait aider: findViewWithTag ()

Définissez TAG sur chaque vue que vous ajoutez à la mise en page, puis récupérez cette vue comme vous le feriez avec l’ID

Je voudrais éviter de saisir statiquement un élément des enfants de la vue. Cela pourrait fonctionner maintenant, mais rend le code difficile à gérer et susceptible de casser les versions futures. Comme indiqué ci-dessus, la méthode appropriée consiste à définir le tag et à afficher la vue par le tag.

Vous pouvez faire comme ça.

 ViewGroup layoutCont= (ViewGroup) findViewById(R.id.linearLayout); getAllChildElements(layoutCont); public static final void getAllChildElements(ViewGroup layoutCont) { if (layoutCont == null) return; final int mCount = layoutCont.getChildCount(); // Loop through all of the children. for (int i = 0; i < mCount; ++i) { final View mChild = layoutCont.getChildAt(i); if (mChild instanceof ViewGroup) { // Recursively attempt another ViewGroup. setAppFont((ViewGroup) mChild, mFont); } else { // Set the font if it is a TextView. } } } 
 LinearLayout layout = (LinearLayout)findViewById([whatever]); for(int i=0;i 

Si ce sont tous des boutons, sinon lancez pour voir et vérifier la classe

 View v = (View)layout.getChildAt(i); if (v instanceof Button) { Button b = (Button) v; }