2014-11-19 2 views
5

저는 꽤 많이 둘러 보았지만이 질문에 대한 진정한 대답을 찾지 못했습니다. 나는 안드로이드 어댑터에 대해 배우기 시작하고 몇 가지 질문을했습니다. 첫째, getView()를 수동으로 호출해야합니까? 그렇지 않으면 자동으로 호출됩니까? 그렇다면 실제로 호출되는 시점은 언제입니까? 마지막으로, 목록에 "위치"에 대한 매개 변수가 있음을 알았습니다. 내가 반복을 통해 증가시켜야하는 것이거나 어떻게 든 내부적으로 증가시킬 수 있습니까?ListView 어댑터의 경우 getView()가 어떻게 호출됩니까?

감사합니다. 첫째

+0

이 자습서 https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView를 통해 다음을 수행하는 것이 좋습니다.그것은 실제로 나를 안드로이드 listviews와 함께 클릭하게 만들었습니다. – rperryng

답변

3

, 나는 수동)의 getView를 (호출 할 필요하거나 자동으로 라고됩니까합니까?

아니요, 자동으로 호출됩니다.

그렇다면 실제 호출 시점은 언제입니까? 사용자가 당신이 그것을 스크롤 할 때 ListView 새로운 항목을 표시 할 때처럼, 당신의 ListView에 뭔가를 할 때 호출됩니다

.

마지막으로 목록에 '위치'에 대한 매개 변수가 있습니다. 그게 내가 반복을 통해 증가 해야하는지 또는 어떻게 든 내부적으로 증가합니까?

아니요, 자동으로 목록 항목의 위치가됩니다. (기본값) View convertView과 같은 다른 매개 변수에 대해서도 현재 항목의 View (행은 ListView)이됩니다.

+0

paramter는 getView (int int position, View convertView, ViewGroup parent)와 같은 "int position"입니다. 따라서 뷰를 정의하면 내 목록에서 볼 지점의 인덱스를 배치합니다 또는 배열? – Will

0

이것은 어댑터 작동 방식의 일부입니다. 이러한 메서드 중 하나를 호출 할 필요가 없습니다. Listview를 통해 암시 적으로 호출되기 때문입니다.

이 봐,

http://www.vogella.com/tutorials/AndroidListView/article.html

그것은 목록보기를 사용하는 방법에 대한 좋은 기사입니다 되세요.

+0

나는 그것을 보았지만, int 위치 매개 변수의 출처와 증가 방법에 대해 고심했다. 죄송합니다. 내 담당자와 투표를 할 수 없다. ( – Will

0

어댑터는 AdapterView (ListView, GridView 등)와 데이터 배열 간의 연결 종류입니다. 어댑터는 AdapterView에 표시 될 데이터를 생성합니다. 그래서 ListView가 먼저 어댑터의 getCount() 메소드를 호출해야하는 경우, 일부 측정 후에 listView의 보이는 부분을 항목으로 채우기 위해 getView()를 몇 번 호출합니다. 그리고 스크롤하는 동안 ListView는 다음 위치에 대해 어댑터에서 getView()를 호출합니다. getView() 호출의 순서를 전제로하지 않는 것이 중요합니다. listView가 데이터 순서와 동일한 순서로 getView()를 호출 할 의무는 없습니다. 위치 인덱스 증가에 대해 걱정할 필요가 없습니다.이 인수는 예를 들어 짝수 행과 홀수 행의 두 가지 배경을 표시해야하는 경우와 같이 상황에 사용됩니다. 그리고 위치를 사용하여 당신이 사용해야하는 색상. 해부학에 대한 좋은 프레젠테이션이 있습니다. ListView

관련 문제