2012-11-27 6 views
0

주문으로 ListView에 동적 데이터를 표시하는 방법 :내가 원하는 무엇

  • 디스플레이를 실제 데이터가 외부 소스에서 오는 항목
  • 의 목록을하고
  • 각 항목 수를 변경할 수 있습니다 여러 개의 "열"이 있어야합니다. 예 : "유형", "내용", "날짜"
  • "유형"및 "날짜"별로 정렬 가능해야합니다.

나는 ListView를 사용하여 원하는 기능을 사용할 수있을 것이라고 생각했지만 (아마도 이것은 매우 나쁜 선택 일 수도 있습니다). 나는 그들에 관한 몇 가지 내용을 읽었지만 여전히 몇 가지 질문을 가지고있다. ListView는 어댑터가 관리하는 데이터를 표시합니다. ArrayAdapter가있는 경우 Listview는 항상 어댑터의 기본 Array 순서로 항목을 표시합니까? 그래서 정렬을 구현하려면 어떻게 든 Array에서 Array를 변경해야합니까? SimpleAdapter를 사용하여 여러 속성을 연속으로 가질 수 있지만 SimpleAdapter 데이터는 정적 인 것으로 읽었습니다. 어떻게하면 될까요?

미리 감사드립니다.

답변

1

예, ArrayList 또는 Vector ([])의 정렬 방식에 따라 ListView이 표시됩니다. 이제 각 행에 대해 여러 속성을 갖고 싶다면 (예 : class Person, 이름, 나이, 주소 등)을 작성하는 것이 좋습니다. 그런 다음 Person 개의 개체가 필요한 목록을 만듭니다. 그런 다음 ArrayAdapterArrayAdapter에있는 getView에서 Person person = getItem(position);으로 전화를 걸면 해당 행 (위치)에 해당 객체가 보관되어 있고 Person 개체로 원하는대로 수행 할 수 있습니다.

1

자신의 어댑터를 만들고 getView() 자신의 위치와 일치하는보기를 반환하십시오. 당신이 1 bbb을 반환 할 때 일종의 id에 의해 및 목록보기 위치 1에서 행하고자 다음

id name 
0 ccc 
1 bbb 
2 aaa 

: 예를 들어이 같은 데이터를 가지고있는 경우. 그러나 이름을 오름차순으로 정렬하고 목록 2 행을 원할 경우 0 ccc을 반환합니다. 물론 당신은 "매핑"을 유지할 필요가 있습니다. 그러나 그것은 사소한 것입니다.

+0

그래서 행을 표시하려면 getView가 ListView에 의해 호출됩니다. 방금 알았어, 그 ArrayAdapter는 "정렬"방법을 가지고, 나는 또한 유용 할 것 같아요. – user1809923

+0

예, 원본 데이터를 정렬 할 수도 있습니다. 어느 쪽이든이 트릭을 할 것입니다. –

관련 문제