Development Tip

뷰의 요소를 반복하는 방법

yourdevel 2020. 12. 3. 20:41
반응형

뷰의 요소를 반복하는 방법


라디오, 입력 및 버튼이있는보기가 있고이를 클릭하면 모든 입력에 정보가 포함되어 있는지 확인하고 싶습니다. 액티비티에서 뷰의 요소를 반복하고 모든 텍스트 뷰가 앞서 언급 한 요구 사항을 충족하는지 확인하려면 어떻게해야합니까? 감사.


현재 나와 있지 않은 일부 코드에서 비슷한 작업을 수행했지만 메모리에서 다음과 같이해야합니다 (ID가 "layout"인 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);
        }
    }
} 

당신 onClickListenerView v물건을 공급 합니다. View rV = v.getRootView()양식에 자신을 배치 하는 사용 합니다. 그런 다음 사용 rV.findViewWithTag( ... )또는 rV.findViewByID(R.id. ... )양식 요소를 찾습니다.

참고 URL : https://stackoverflow.com/questions/4809834/how-to-iterate-through-a-views-elements

반응형