I was wondering how to set a number starting from 1 to n for my listview items. The column is not included in my sqllite database.
I would like to use a custom simple cursor adapter that has a textview called labelNumber and set the number to 1 on the first call to newView and bindview and increment the value after each call.
Is this the right approach or is there a better way. Obviously this is to help with the navigation of the list view to know your current position?
Update- code is working check comments below
public class ProgressAdapter extends SimpleCursorAdapter {
private Context context;
private int layout;
private ViewHolder viewHolder;
    // create an integer to use as a number holder
private int n;
static class ViewHolder {
    public TextView number;
    public TextView setsText;
    public TextView repsText;
    public TextView weightText;
    public TextView completeText;
    public ImageView mgImage;
}
public ProgressAdapter(Activity context, int layout, Cursor c,
        String[] from, int[] to) {
    super(context, layout, c, from, to);
    this.context = context;
    this.layout = layout;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    Cursor c = getCursor();
    viewHolder = new ViewHolder();
    final LayoutInflater inflater = LayoutInflater.from(context);
    View v = inflater.inflate(layout, parent, false);
    // get the number using the cursor position
            // add 1 to the int to start at 1 instead of 0
    n = c.getPosition()+ 1;
            String lineNumber = Integer.toString(n);
    int setsColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_SETS);
    String sets = c.getString(setsColumn);
    int repsColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_REPS);
    String reps = c.getString(repsColumn);
    int weightColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_WEIGHT);
    String weight = c.getString(weightColumn);
    viewHolder.number = (TextView) v.findViewById(R.id.labelNumber);
    viewHolder.setsText = (TextView) v.findViewById(R.id.labelSets);
    viewHolder.repsText = (TextView) v.findViewById(R.id.labelReps);
    viewHolder.weightText = (TextView) v.findViewById(R.id.labelWeight);
    if ( viewHolder.setsText != null && viewHolder.repsText != null
            && viewHolder.weightText != null
            ) {
        viewHolder.number.setText(lineNumber);
        viewHolder.setsText.setText(sets);
        viewHolder.repsText.setText(reps);
        viewHolder.weightText.setText(weight);
    }
    return v;
}
@Override
public void bindView(View v, Context context, Cursor c) {
    viewHolder = new ViewHolder();
            // use cursor to get the integer and add 1 to position
    c = getCursor();
    n = c.getPosition()+ 1;
            String lineNumber = Integer.toString(n);
    int setsColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_SETS);
    String sets = c.getString(setsColumn);
    int repsColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_REPS);
    String reps = c.getString(repsColumn);
    int weightColumn = c.getColumnIndex(ExerciseDbAdapter.KEY_WEIGHT);
    String weight = c.getString(weightColumn);
    // set the fields for the view
    viewHolder.number = (TextView) v.findViewById(R.id.labelNumber);
    viewHolder.setsText = (TextView) v.findViewById(R.id.labelSets);
    viewHolder.repsText = (TextView) v.findViewById(R.id.labelReps);
    viewHolder.weightText = (TextView) v.findViewById(R.id.labelWeight);
    if (viewHolder.setsText != null && viewHolder.repsText != null
            && viewHolder.weightText != null
            ) {
        viewHolder.number.setText(lineNumber);
        viewHolder.setsText.setText(sets);
        viewHolder.repsText.setText(reps);
        viewHolder.weightText.setText(weight);
    }
}
}
 
    