2011-11-03 5 views
0

오름차순 또는 내림차순으로 정렬 할 수있는 옵션이있는 목록을 디자인하고 싶습니다. 나는 다른 의도를 사용하여 그것을 할 수있다. 새로운 의도가 없어도 그렇게 할 수 있습니까? 내 마음에 드는 예는 Android에서 애플리케이션 관리입니다. 같은 화면에서 이름과 크기별로 정렬하십시오. 어떻게 된거 야?하나의 활동, 여러 번보기?

수정 - 20 개 항목의 목록이 있습니다. 지금은 목록 항목을 정렬하고 상위 5 개 항목 만 표시하고 있습니다. 아래 5 개 항목을 표시하는 옵션을 추가하고 싶습니다. 나는 상단 배열을 bottom 배열로 대체 한 prev 클래스와 동일한 새로운 클래스 exactle을 작성하여이 작업을 수행했습니다.

+1

내가 (대신 layout.xml에를 지정하는) 당신이 목록의 프로그램 적 순서를 변경할 수 있습니다 추측, 그것은

확인하지? – lc2817

+0

이제 두 개의 다른 활동을 사용하여 다른 순서로 목록을 표시하고 하나의 Activity.Right에서 목록보기의 순서를 전환하는 것이 좋습니다. – Huang

+0

어댑터를 수정하여 데이터를 정렬 할 수 있습니다. ArrayAdapter 정렬 기능을 지원하는 것 같아요.일부 코드 게시, 우리는 그것을 기반으로 업데이트 할 수 있습니다. – Karthik

답변

0

일반적으로 목록은 ListView을 사용하여 표시됩니다. ListViews에는 일반적으로 연결된 어댑터가 있습니다. 보기는 어댑터에있는 순서대로 나열됩니다. 따라서 목록의 요소 순서를 변경하려면 원하는대로 요소가 정렬 된 새 어댑터를 설정해야합니다 (기존 어댑터의 요소 순서를 변경하려고 할 수도 있지만 나는 그것이 할 수 있는지 모른다.

에 대해 더 잘 이해할 수있는 ListView Hello World Example을 볼 수 있습니다.

1

기본 데이터 구조를 어댑터에서 설정하기 전에 다시 정렬 할 수 있습니다.

+0

이것은 내가 최근에 한 일입니다. 목록을 정렬하고 어댑터를 호출하십시오. notifyDataSetChanged() (또는 유사 - pc atm 근처). 어댑터가 여전히 원본 목록을 참조하므로 새 목록을 만들지 않도록하십시오. – barry

0

Umang, 나는 지금 손에 일식을 가지고 있지 않고 단지 당신의 문제를 해결하기 위해 생각의 기차를 표현하고 싶습니다. 코드를 직접 작성하고 테스트하십시오.

  1. 이해야합니다 목록보기와 관련된 어댑터, 그 안에, 당신처럼 순서 모드를 moniter에 변수를 설정할 수 있습니다 될 다음 mode에 따라, 어댑터의의 getView() 메소드 내부 private int mode;
  2. , 당신이 원하는대로 항목을 반환합니다. 이미 주문을 변경할 수 있으므로 위 단계를 완료했다고 생각합니다.
  3. 첫 번째 활동에서 사용자가 메뉴를 통해 주문을 변경하도록 일정을 설정할 수 있습니다. 따라서 public boolean onCreateOptionsMenu (Menu menu)을 무시하십시오.
  4. 해당 public boolean onOptionsItemSelected (MenuItem item)에서 사용자가 선택한 항목 인덱스를 기준으로 mode 값을 설정합니다.
  5. adapter.notifyDataSetChanged()을 호출하여 listView에 대한 데이터가 변경되었음을 시스템에 알립니다.
  6. 새 ListView를 표시하려면 listView.invalidate()을 호출하십시오.
0

ArrayAdapter 클래스에는 정렬 작업을 수행하는 데 필요한 Comparator를 작성하는 데 어려움을 겪고 있다면 "sort (Comparator comparator)"를 통해 정렬 할 수있는 기본 제공 메서드가 있습니다. 이 메서드를 사용하여 외부에서 재정렬 된 목록으로 어댑터를 다시로드 할 필요없이 "적절한 위치에서 정렬"할 수 있습니다. 밖으로 http://developer.android.com/reference/android/widget/ArrayAdapter.html

http://developer.android.com/reference/java/util/Comparator.html

관련 문제