Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to number items in a list view?
    primarykey
    data
    text
    <p>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. </p> <p>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. </p> <p>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?</p> <p><strong>Update- code is working check comments below</strong></p> <pre><code>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 &amp;&amp; viewHolder.repsText != null &amp;&amp; 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 &amp;&amp; viewHolder.repsText != null &amp;&amp; viewHolder.weightText != null ) { viewHolder.number.setText(lineNumber); viewHolder.setsText.setText(sets); viewHolder.repsText.setText(reps); viewHolder.weightText.setText(weight); } } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload