Как перебирать элементы представления

У меня есть представление с радиоприемниками, входами и кнопкой, и когда я нажимаю на нее, я хочу проверить, что все входы содержат информацию. Как я могу перебирать элементы представления в действии и проверять, соответствует ли каждое текстовое представление вышеупомянутому требованию? Благодарю.

Solutions Collecting From Web of "Как перебирать элементы представления"

Я сделал что-то подобное в некотором коде, которого у меня сейчас нет, но из памяти это должно быть что-то вроде этого (предполагая родительское представление LinearLayout с идентификатором «макета»):

LinearLayout layout = (LinearLayout)findViewById(R.id.layout); boolean success = formIsValid(layout); public boolean formIsValid(LinearLayout layout) { for (int i = 0; i < layout.getChildCount(); i++) { View v = layout.getChildAt(i); if (v instanceof EditText) { //validate your EditText here } else if (v instanceof RadioButton) { //validate RadioButton } //etc. If it fails anywhere, just return false. } return true; } 

Чтобы применить метод kcoppock рекурсивно, вы можете изменить его на это:

 private void loopViews(ViewGroup view) { for (int i = 0; i < view.getChildCount(); i++) { View v = view.getChildAt(i); if (v instanceof EditText) { // Do something } else if (v instanceof ViewGroup) { this.loopViews((ViewGroup) v); } } } 

Ваш onClickListener предоставляет объект View v ; Используйте View rV = v.getRootView() чтобы разместить себя в форме. Затем используйте rV.findViewWithTag( ... ) или rV.findViewByID(R.id. ... ) чтобы найти элементы формы.