0

CustomAdapter를 사용하는 GridView가 있고 배열 목록 (크기 = 20)이 있습니다.ArrayAdapter에서 "getView()"가 완료된 때를 어떻게 알 수 있습니까?

내가 전화 할 때 adapter.notifyDataSetChanged(); - getView()이 더 많이 호출됩니다. (나는 그것에 대해 아무 것도 할 수 없다는 것을 알고 있습니다.) 그러나 CustomAdapter 클래스에 done==false 변수가 있는데 한 번 getView()이 작동하면 (20 회 또는 50 회 이후) getView() 한 번 수행 할 작업을 제어하려면 어떻게해야합니까? 이 변수를 true로 변경하고 싶습니다. 어디에 done=true을 놓아야합니까? 마지막 getView() 호출이 position==19

+0

Adnroid 문서는 말한다 : 보기가 팽창, 부모보기 (의 GridView, ListView를 ...) 당신이 팽창 사용하지 않는 기본 레이아웃 매개 변수를 적용합니다 (INT, android.view.ViewGroup , boolean)을 사용하여 루트보기를 지정하고 루트에 대한 첨부를 방지합니다. –

+0

또한 GridView가 gridLayout에 반복적으로 호출되어 requestLayout이 그리드에 채워질 때 레이아웃 뷰에서 수행 할 수있는 최적화를 확인하여 이러한 추가 측정 및 레이아웃 단계를 피할 수 있습니다. – petey

+0

왜이 'done' 플래그가 필요합니까? – petey

답변

0

필요가 없습니다 *

당신은 그렇게 할 수 없습니다! 목록보기가 새로 고쳐 로는의 getView()가 호출 될하는 순서 나 횟수에 절대적으로 보장이 없습니다

스크롤에 차일을합니다.

source

+0

하지만 내가 물었던 것이 아닙니다. 이미 주문에 대한 보장이 없다는 것을 이미 알고 있습니다. 나는 이미 전화 수가 보장되지 않는다는 것을 이미 알고 있습니다. 하지만 결국이 방법은 제대로 끝났습니까? 아직 Java입니다. 일단 완료되면 어떻게 될까요? – SHAI

+0

당신이하려고하는 것을 이해하지 못합니다. 만약 당신이'done == true;'를 넣으면 메소드의 끝에서 true가 될 것이고, 완료되면 어댑터의 필드가됩니다. 참된. –

+0

나중에 false로 변경하겠습니다. 문제가 아닙니다. 나는 "getView()"의 마지막 호출이 (** 횟수 이후에) 한번만 true로 변경해야한다. – SHAI