2012-12-25 2 views
0

하나의 필드로 정렬하고 다른 필드의 행 위치를 볼 수 있습니까? 예를 들어 첫 번째 필드에 이름이 있고 두 번째 필드에 나이가있는 경우 이름순으로 정렬하고 세 번째 필드에서 가장 오래된 위치부터 가장 오래된 위치를 봅니다.android getPosition and sorting

Ann 25years 2 // 2nd position in the age. 
Joe 30years 3 // 3rd position in the age. 
Ron 20years 1 // 1st position 

나는 "칼럼 나이"로부터 getposition을 갖고 싶습니다.

내 코드

Show_Activity

///ON RESUME  
    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

    datasource.open(); 
     Cursor cursor = datasource.Query(filter); 

     String[] columns = new String[] { "swimm_pos", "swimm_date","swimm_lap", "swimm_stroke", "swimm_time", "swimm_media", "swimm_efficiency", "swimm_note" }; 
     int[] to = new int[] { R.id.swimm_pos, R.id.swimm_date, R.id.swimm_lap, R.id.swimm_stroke, R.id.swimm_time, R.id.swimm_medialap, R.id.swimm_efficiency, R.id.swimm_note}; 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(
      this, 
      R.layout.list_layout, 
      cursor, 
      columns, 
      to); 

    adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() { 
      public boolean setViewValue(View view, Cursor cursor, int columnIndex) { 
       if (view.getId() == R.id.swimm_pos) 
       { 
        rowcounter = cursor.getPosition()+1; 
        String s = String.valueOf(rowcounter); 
        TextView tv = (TextView)view; 
        tv.setBackgroundColor(0xFF558866); 
        tv.setText(s); 
        return true; 
      } 
       return false;} 
     }); 

    this.setListAdapter(adapter); 
    datasource.close(); 
} 

DBAdapter

public Cursor Query(String filter) { 
      Cursor cursor = database.rawQuery 
        ("select _id, swimm_pos,swimm_date, swimm_lap,swimm_stroke,swimm_time,swimm_media,swimm_efficiency,swimm_note from swimm_table order by cast("+filter+" as integer) asc", null); 
      return cursor; 
     } 
......... 

내가 버튼 정렬

.... 
    switch (v.getId()) { 
     case R.id.btn_sort_date: 
      filter = "swimm_date"; 
      datasource.open(); 
       cursor = datasource.Query(filter);   
       adapter = new SimpleCursorAdapter(
        this, 
        R.layout.list_layout, 
        cursor, 
        columns, 
        to); 
+0

이름순으로 정렬 된 목록의 표시를 수정 하시겠습니까? 어디에서 데이터를 가져 오나요? –

답변

0

당신은 다른 방법으로 그것을 할 수 변경했습니다. 어느 것이 든 코드를 작성한 다음 테이블에 삽입하여 연령을 분류하거나 다른 테이블에있는 사람의 연령을 가지고 ORDER BY (기본적으로 오름차순)으로 만들 수 있습니다. 나이 테이블을 기본 키 자동 증가로 한 열 표시하십시오. 그런 다음 사람 이름이 들어있는 테이블을 사용하여 내부 조인을 수행합니다. 그래서 당신이 위에서 언급 한 테이블을 얻을 것입니다.

+0

위로 내 실제 코드 (이름과 나이는 더 잘 설명하려고하는 예제)로 편집합니다. 난 rowcounter 항상 = swimm_lap의 행 순서 위치 싶습니다. (2 바퀴 = 1, 20 바퀴 = 2, 40 바퀴 = 3 ...) 또한 swimm_time이나 order by swimm_stroke로 주문했을 때 ... – lucignolo