2011-02-12 3 views
1

모든 유형의 레이아웃으로 많은 튜토리얼을 볼 수 있지만 항목을 기반으로 레이아웃을 동적으로 적용하는 방법은 명확하지 않습니다.행별로 동적으로 선택되는 ListView

책과 같은 일반적인 유형에서 파생 된 항목으로 목록을 가정 할 수 있지만 문고판이나 오디오 북과 같은 다른 하위 책은 완전히 다른 레이아웃을 갖습니다. 그래서 우리는 클래스/객체 유형별 목록에 하나의 레이아웃을 갖게 될 것입니다. Evey 항목에는 몇 가지 공통 속성이 있지만 다른 항목에는 몇 가지 추가 속성이 있습니다.

그래서 예

1 행 설명 텍스트 클릭 가능한 버튼 ItemType은이 행 2 설명 텍스트 선택란 ItemType은 = C 3 행 설명 텍스트 스피너 ItemType은 = B 4 행 설명 텍스트 클릭 가능한 버튼 나타내고 itemtype = A 행 = 5 설명 텍스트 확인란 ItemType = C

기본적으로 항목 유형이 레이아웃을 결정합니다. ItemType A에는 항상 Clickable Item, ItemType C 항상 CheckBox, ItemType B 항상 Spinner가 있고 모든 레이아웃에는 설명 텍스트가 있습니다. 배열이 데이터 배열의 요소를 기반으로 목록 요소에 동적으로 적용되는 방식을 보지 못했습니다. 어떻게이 일을 더 잘할 수 있었는지 아직은 좋은 예가 있습니다. 감사합니다

+0

기본적으로 내가 요구하는 것은 렌더링되는 데이터에서 하나 이상의 필드를 기반으로 다른 레이아웃을 적용 할 수있는 방법입니다. 항목의 유형에 따라 동적으로 선택되는 항목 렌더러? 감사합니다 – Androider

+0

[각 행에 대해 다른 레이아웃으로 Android 목록 뷰] 중복 가능 (0120-367-303). –

답변

1

요즘 몇 가지 질문이 있습니다. 한 가지 해결책은 어댑터의 getView 메소드를 대체하고 런타임에 목록의 각 항목에 적용 할 레이아웃을 판별하는 것입니다. 이것은 상당한 양의 작업이지만 요구하는 비표준 구현에 대해 원하는 것을 수행합니다.

+0

감사합니다. 그게 내가 찾고 있었던 것. Cursor 기반 vs. 단순 비교. 어떤 것이 가장 좋을지에 관해서. – Androider

+0

필자는 목록에'BaseAdapters'와'SimpleAdapters' (Base를 사용하기 쉽습니다)만을 사용했습니다. SimpleCursorAdapter는 Base Adapter에서 상속되므로 이점이 무엇인지 잘 모르겠습니다. – user432209

관련 문제