2011-09-08 7 views
10

환경 설정의 onCreateViewonBindView 메소드의 차이점은 무엇입니까?환경 설정의 onCreateView와 onBindView 메소드의 차이점

이 환경 설정에 대한 데이터를 생성보기 바인드 : 문서에서

그것은 onBindView 말한다. 레이아웃의 사용자 정의보기에 대한 참조를 가져 와서 속성을 설정하기에 좋은 곳은 입니다.

내 레이아웃의보기에 속성을 설정하는 것이 좋은 이유는 무엇입니까? 현재 onCreateView 메서드의 속성을 설정하고 모든 것이 잘 작동하는 것 같습니다. 내 경험에 의하면 두 방법 모두 항상 함께 호출되는 것처럼 보입니다. 어쩌면 onBindView라고 불리는 상황이 있을까요?

+0

'onCreateView '당신은 건설을 보거나 구속력을 갖기 위해 준비하는 것을 스스로에게 맡깁니다. 'onBindView'를 사용하면 데이터를 기반으로 뷰를 초기화 할 수 있습니다. 그것이 바로 바인딩입니다. 상황이 있습니다. 그렇지 않으면 별도의 메소드가 아니며 문서가 다른 것을 말합니다. 귀하의 코드는 "우연히"작동합니다. –

+0

escape-llc- 댓글을 수락 된 답변으로 표시 할 수 없습니다. 답글을 답장 대신 답 형식으로 게시하십시오 :) –

+0

답변으로 의견을 게시하는 사람들을 볼 수는 있지만 드물게 그 반대를 볼 수 있습니다. :-) – davidcesarino

답변

7

onCreateView()은 결국 기본 설정 UI가 포함될보기 계층을 만들기위한 것입니다. onBindView()onCreateView()에 생성 된 뷰 계층 구조에 실제 데이터를 바인딩하기위한 것입니다.

이 패턴은 데이터를 해당 View 계층에 바인딩하는 것과 같이 캐시 된 View 계층 구조를 구분합니다. Preference의 경우 onCreateView()은 한 번만 호출되지만 UI가 기본 설정보기를로드해야 할 때마다 onBindView()이 호출됩니다.

환경 설정에서 설정 한 속성을 변경하지 않으므로 현재 설정이 작동한다고 생각합니다. 보기 계층 구조의 속성을 onBindView()으로 설정하는 것이 동적 인 경우가 있기 때문에 필요할 수 있습니다.

(AS를 제외하고, 디자인 패턴은 또한 만 화면에 표시 할만큼 뷰를 생성하지만 끊임없이 새로운 데이터에이보기 구속력 CursorAdapters에서 볼 바인딩 대이보기 작성.)

관련 문제