0

是否可以按一个字段排序并查看另一个字段的行位置。例如,在第一个字段中有姓名,在第二个字段中有年龄 按姓名排序并在第三个字段中查看从最小到最老的位置。

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

我想从“列时代”获得定位,这可能吗?

我的代码

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();
}

数据库适配器

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); 
4

1 回答 1

0

你可以用不同的方式来做。您可以通过编写代码然后插入表格来对年龄进行排序,或者您可以在不同的表格中设置人员的年龄并使其ORDER BY(默认升序)年龄。将年龄表标记为主键自动增量一列。然后与包含人名的表进行内部连接。这样您就可以得到上面提到的表格。

于 2012-12-25T03:37:41.363 回答