2011-02-04 1 views
2

데이터를 제공하는 ArrayAdapter가 포함 된 ListView가 있습니다. 페이징을 추가하고 있으므로 아래쪽으로 스크롤하면 더 많은 행이로드됩니다.Android Array 기반 ListView의 하단에 항목을 추가하고 위치를 유지하는 방법은 무엇인가요?

하지만 배열을 사용할 때 문제가 발생합니다. 나는 크기가 분명히 고정되어 배열을 확장 할 수 없으며 새 배열을 만들면 ListView는 새 항목 (notifyDataSetChanged)을 무시하거나 (새 배열로 목록을 새로 고치면) 맨 위로 이동합니다 .

이 작업을 수행하는 일반적인 방법은 무엇입니까? 다른 컬렉션 유형을 사용 하시겠습니까? 최대 행 수를 수용 할 수있는 대형 배열을 사용합니까? 또는 데이터 집합이 변경되었고 실제로 작동합니다 (notifyDataSetChanged()가 배열이 변경되지 않았을 가능성이 높기 때문에 notifyDataSetChanged()가 내 시나리오에서 작동하지 않음을 알리는 방법이 있습니다. 옛 것과 함께). 아니면 새로운 큰 배열로 어댑터를 설정하고 올바른 위치로 점프해야합니까?

답변

1

당신은 제목에 ArrayList를 말합니다. 그러나 당신은 단지 배열에 대해서 말하고 있습니다. ArrayList를 사용하면 ArrayList.add() 메서드를 사용하여 필요한만큼 항목을 추가 할 수 있습니다. 내가 너를 오해하고 있니, 아마도?

+0

죄송합니다. 배열을 사용하고 있습니다. 형식 안전이 필요하며 컬렉션을 넣거나 제거 할 때마다 캐스팅하지 않으려합니다. 배열을 사용하는 대신 ArrayList를 서브 클래 싱하는 것이 가장 좋습니까? –

+0

불행히도 나는 그것에 대한 좋은 대답이 없습니다. ArrayList는이 인스턴스에서 사용할 것입니다. 그것을 대신 서브 클래 싱하는 ... 나는 그것을 대답하기 위해 다른 누군가에게 맡길 것이다. :) – kcoppock

+0

호기심, 또한 왜 ArrayList에 추가 할 때 캐스팅해야할까요? ArrayList 으로 만들면됩니다. – kcoppock

관련 문제