Ottenere elementi figlio da LinearLayout

C'è un modo per get un elemento figlio di un LinearLayout? Il mio codice restituisce una vista (linearlayout), ma ho bisogno di accedere a elementi specifici all'interno del layout.

Eventuali suggerimenti?

  • Come verificare la compatibilità del dispositivo per l'authentication della printing in dito in android
  • Analizzare l'object JSON nidificato in Android
  • Aggiornamento del database Android sul dispositivo
  • setTextAppearance deprecata nel livello API 23
  • Come utilizzare più listviews in un'unica attività su android?
  • Come submit i dati di text al telecommand CC2541 tramite Android 4.3?
  • (Sì, so che potrei utilizzare findViewById, ma creo i layout / i bambini in java – non XML).

  • Registro di sistema AndroidOnSharedPreferenceChangeListener () provoca l'arresto anomalo in una visualizzazione personalizzata
  • Come get l'annuncio da mostrare in fondo allo schermo senza sovrapposizioni
  • Il softkeyboard Android non viene mai visualizzato nell'emulatore
  • Implementazione di diverse modalità PorterDuff in android
  • Errore: l'esecuzione non è rioutput nell'attività del task ': app: dexDebug' nel mio progetto mentre ho aggiunto nuova dipendenza
  • Plugin AutoFormat di Android Studio
  • 5 Solutions collect form web for “Ottenere elementi figlio da LinearLayout”

    Puoi sempre fare qualcosa di simile:

    LinearLayout layout = setupLayout(); int count = layout.getChildCount(); View v = null; for(int i=0; i<count; i++) { v = layout.getChildAt(i); //do something with your child element } 

    Penso che questo potrebbe aiutare: findViewWithTag ()

    Impostare TAG a each visualizzazione aggiunta al layout e quindi get quella visualizzazione dalla TAG come si farebbe utilizzando l'ID

    Eviterei di trattenere staticamente un elemento dai figli della vista. Può funzionare ora, ma rende difficile il codice di protezione e suscettibile di rompere le versioni future. Come detto sopra il modo corretto di farlo è quello di impostare il tag e di get la vista dal tag.

    Puoi fare questo.

     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<layout.getChildCount();i++) { Button b = (Button)layout.getChildAt(i) } 

    Se sono tutti pulsanti, altrimenti cast per visualizzare e controllare la class

     View v = (View)layout.getChildAt(i); if (v instanceof Button) { Button b = (Button) v; } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.