2014-03-04 4 views
1

현재 사용자 정의 레이아웃 목록 셀에 다양한 요소를 채워야하는 배열이 4 개 있습니다. 기본 어댑터 및 어레이 어댑터를 살펴 보았습니다. 후자는 입력 데이터가 객체의 ArrayList가되도록 요구합니다.배열 어댑터 대 기본 어댑터

성능 관점에서 보면 기본 어댑터를 사용하거나 현재 데이터 집합을 개체의 ArrayList로 변환하는 것이 더 많은 메모리를 사용하는 것이 좋습니다.

+0

흠 ... 단순한 개체는 더 좋지만 때로는 유용하고 문제가 많습니다. 따라서 어댑터의 객체를 사용자 정의 할 수 있습니다. Everythink는 당신이 그 어댑터를 무엇을 사용하고 싶은지에 달려 있습니다. 데이터가 상당히 크지 않은 경우 실적이 저하 될 때가 있습니다. – RMachnik

답변

1

BaseAdapter으로 이동하십시오. ArrayList이라는 요구 사항을 제거하면 구현이보다 유연 해집니다. 추가 작업은 getCount()와 같은 몇 가지 기본 메소드를 구현하는 것입니다. getCount()는 콜렉션의 길이 또는 getObject()와 같을 것입니다. 이는 아마도 목록의 어떤 위치에있는 객체 일 것입니다. 당신은 심지어 당신 자신의 생성자를 구현할 필요가 있을지도 모르지만 그것은 OOP 사용의 한 부분 일뿐입니다. 별로 중요하지 않습니다.

하나의 어댑터를 다른 어댑터와 비교했을 때 성능 차이는 없습니다. BaseAdapter은 여러 어댑터 유형 (ArrayAdapter 중 하나임)에 대한 수퍼 클래스입니다. 비용이 들지 않는다면 아무런 의미가 없습니다. BaseAdapter 선상에서보다 유연하게 동일한 결과를 얻을 수 있습니다.

+0

왜 ArrayAdapter를 사용하지 않습니까? 너도 그걸 설명 할 수 있니? ArrayAdapter의 제한 사항은 무엇입니까? – UnKnown

+0

@UnKnown 단일 ArrayList를 사용한다는 것을 알고 있다면 ArrayAdapter에 문제가 없습니다. 표시하려는 데이터가 해당 형식으로 저장되어 있지 않으면 ArrayAdapter를 사용할 수 없습니다. 최소한 저에게는 많은 일이 발생합니다. 그래서 저는 필요에 맞는 BaseAdapter를 만듭니다. – Rarw

+0

하지만 ArrayAdapter의 getView 메소드를 대체하면 어떻게됩니까? – UnKnown

0

어댑터를 만들 때 모든 데이터가있는 경우 ArrayAdapter를 사용하는 것이 좋습니다. 코드가 적어 오류가 적습니다. 즉석에서 항목을 채우거나 데이터 집합이 크게 변경 될 수 있다면 자체 어댑터에서 추가 컨트롤을 원할 수 있습니다.