Tôi có chế độ xem với radio, đầu vào và nút và khi tôi nhấp vào, tôi muốn kiểm tra xem tất cả các yếu tố đầu vào có chứa thông tin hay không. Làm cách nào để tôi có thể lặp qua các yếu tố của chế độ xem trong hoạt động và kiểm tra xem mỗi lần xem văn bản có đáp ứng được yêu cầu nói trên không? Cảm ơn.Cách lặp qua các yếu tố của khung nhìn
52
A
Trả lời
108
Tôi đã thực hiện điều gì đó tương tự trong một số mã mà tôi không có với tôi vào lúc này, nhưng từ bộ nhớ, nó phải giống như thế này (giả sử chế độ xem bố mẹ LinearLayout có id là "bố cục"):
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;
}
0
onClickListener
của bạn cung cấp đối tượng View v
; sử dụng View rV = v.getRootView()
để định vị chính bạn trên biểu mẫu. Sau đó, sử dụng rV.findViewWithTag(...)
hoặc rV.findViewByID(R.id. ...)
để tìm các yếu tố biểu mẫu của bạn.
14
để áp dụng phương pháp này bởi kcoppock đệ quy, bạn có thể thay đổi nó như thế này:
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);
}
}
}
Các vấn đề liên quan
- 1. Các yếu tố lặp lại của WPF
- 2. Các yếu tố của phong cách Scala?
- 3. Làm thế nào để bạn tự động tạo các yếu tố khung nhìn Backbone?
- 4. Vòng qua các yếu tố xml
- 5. Các yếu tố trùng lặp nhiều phần
- 6. Sự khác biệt giữa khung nhìn và khung giới hạn của khung nhìn + iPhone
- 7. jQuery: di chuyển cửa sổ khung nhìn để hiển thị tươi toggled yếu tố
- 8. lặp thông qua các yếu tố enum không liên tiếp trong C++
- 9. yếu tố Đếm li có thể nhìn thấy với jQuery
- 10. Detect nếu một yếu tố là REALLY nhìn thấy
- 11. Java HashMap yếu tố trùng lặp
- 12. jQuery: lặp qua các yếu tố lồng nhau sử dụng mỗi
- 13. console.log yếu tố jquery trên chrome nhìn lạ
- 14. Looping thông qua các yếu tố trong một mảng ngược
- 15. tử bỏ qua đệm của yếu tố container
- 16. chuỗi Chia thành các chuỗi lặp đi lặp lại các yếu tố
- 17. Lấy các yếu tố của một số
- 18. Looping thông qua các yếu tố của một mảng trong Javascript
- 19. Mục đích của các khung nhìn trong SQL là gì?
- 20. XQuery: giá trị trở lại của một yếu tố chứ không phải các yếu tố tự
- 21. jQuery Validate Bỏ qua yếu tố với phong cách
- 22. mức yếu tố Sắp xếp lại trong khung dữ liệu
- 23. Lặp qua tất cả "tiện ích"/yếu tố trong một Hoạt động
- 24. XSLT - So sánh các yếu tố trước-ACE có yếu tố nút hiện tại của
- 25. knockoutjs lấy id yếu tố thông qua sự kiện click
- 26. RecursiveIteratorIterator trả về các yếu tố phụ
- 27. Tạo các yếu tố HTML5
- 28. jQuery: đếm các yếu tố có thể nhìn thấy - hiệu quả/vấn đề tốc độ
- 29. jQuery phát hiện các yếu tố có thể nhìn thấy nhưng ẩn
- 30. Nối yếu tố là con của nguyên tố Anti-XML
Tôi thích việc bạn sử dụng getClass. Tôi đoán trong một cái bàn hoặc một cái nhìn kiểu container tương tự, người ta có thể sử dụng một cuộc gọi đệ quy để đón những đứa trẻ bên trong đó, đúng không? – Lumis
Câu hỏi hay! Tôi sẽ nghĩ như vậy. Tôi cho rằng bạn có thể làm cho hàm formIsValid lấy một tham số View chung, và cast, để bạn có thể làm một cái gì đó như 'if (c == TableLayout.class) nếu (! FormIsValid (v)) trả về false;'. Bạn sẽ phải đảm bảo không chỉ trả về true sau khi bố trí lồng nhau để tránh bị loại bỏ trước khi hoàn thành phần còn lại của biểu mẫu ban đầu. – kcoppock
Đó là chính xác trường hợp của tôi, getChildAt() trả về tablerows chỉ. – xain