Intereting Posts
Как определить версию Gradle? Как установить текст диалога google api в языке по умолчанию приложения Создайте код скидки для моего собственного приложения в магазине google play Все ли файлы .class в моем приложении Java загружаются в память после запуска приложения? Как включить или подделать мини-вариант из руководства по материальному дизайну для android.support.v4.widget.DrawerLayout? Как отлаживать Android 6.0 через Wi-Fi? (Проблема netcfg) Преобразование значения шестнадцатеричного цвета (#ffffff) в целочисленное значение Диалог поиска в Mono Android Jitsi-android не может компилировать и строить Выбрать все элементы в ListView Не удается установить Android ADT в Eclipse Helios (Windows) Как установить высоту и ширину dp для просмотра изображений в android? PendingIntent не отправляет дополнения Intent Как отправить сообщение из приложения Android через сообщение Viber Как удалить все уведомления, когда приложение Android (действие или услуга) будет убито?

Получить все дочерние представления внутри LinearLayout сразу

У меня есть LinearLayout , который содержит несколько дочерних TextViews . Как я могу получить дочерние представления этого LinerLayout с помощью цикла?

Solutions Collecting From Web of "Получить все дочерние представления внутри LinearLayout сразу"

Используйте getChildCount() и getChildAt(int index) .

Пример:

 LinearLayout ll = … final int childCount = ll.getChildCount(); for (int i = 0; i < childCount; i++) { View v = ll.getChildAt(i); // Do something with v. // … } 
  ( (ViewGroup) findViewById(android.R.id.content));// you can use this in an Activity to get your layout root view, then pass it to findAllEdittexts() method below. 

Здесь я повторяю только EdiTexts, если вы хотите, чтобы все Views вы могли заменить EditText на View.

 SparseArray<Edittext> array = new SparseArray<Edittext>(); private void findAllEdittexts(ViewGroup viewGroup) { int count = viewGroup.getChildCount(); for (int i = 0; i < count; i++) { View view = viewGroup.getChildAt(i); if (view instanceof ViewGroup) findAllEdittexts((ViewGroup) view); else if (view instanceof Edittext) { Edittext edittext = (Edittext) view; array.put(edittext.getId(), edittext); } } } 

использовать это

  final int childCount = mainL.getChildCount(); for (int i = 0; i < childCount; i++) { View element = mainL.getChildAt(i); // EditText if (element instanceof EditText) { EditText editText = (EditText)element; System.out.println("ELEMENTS EditText getId=>"+editText.getId()+ " getTag=>"+element.getTag()+ " getText=>"+editText.getText()); } // CheckBox if (element instanceof CheckBox) { CheckBox checkBox = (CheckBox)element; System.out.println("ELEMENTS CheckBox getId=>"+checkBox.getId()+ " getTag=>"+checkBox.getTag()+ " getText=>"+checkBox.getText()+" isChecked=>"+checkBox.isChecked()); } // DatePicker if (element instanceof DatePicker) { DatePicker datePicker = (DatePicker)element; System.out.println("ELEMENTS DatePicker getId=>"+datePicker.getId()+ " getTag=>"+datePicker.getTag()+ " getDayOfMonth=>"+datePicker.getDayOfMonth()); } // Spinner if (element instanceof Spinner) { Spinner spinner = (Spinner)element; System.out.println("ELEMENTS Spinner getId=>"+spinner.getId()+ " getTag=>"+spinner.getTag()+ " getSelectedItemId=>"+spinner.getSelectedItemId()+ " getSelectedItemPosition=>"+spinner.getSelectedItemPosition()+ " getTag(key)=>"+spinner.getTag(spinner.getSelectedItemPosition())); } }