Skip to content Skip to sidebar Skip to footer

How To Number Items In A List View?

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 adapt

Solution 1:

publicclassProgressAdapterextendsSimpleCursorAdapter {
private Context context;
privateint layout;
private ViewHolder viewHolder;
// create an integer to use as a number holderprivateint n;


staticclassViewHolder {
public TextView number;
public TextView setsText;
public TextView repsText;
public TextView weightText;
public TextView completeText;
public ImageView mgImage;
}

publicProgressAdapter(Activity context, int layout, Cursor c,
    String[] from, int[] to) {
super(context, layout, c, from, to);
this.context = context;
this.layout = layout;

}


@Overridepublic View newView(Context context, Cursor cursor, ViewGroup parent) {
Cursorc= getCursor();
viewHolder = newViewHolder();
finalLayoutInflaterinflater= LayoutInflater.from(context);
Viewv= inflater.inflate(layout, parent, false);
// get the number using the cursor position
n = c.getPosition();
        // add 1 to the int to start at 1 instead of 0
n = n+1;
intsetsColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_SETS);
Stringsets= c.getString(setsColumn);

intrepsColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_REPS);
Stringreps= c.getString(repsColumn);

intweightColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_WEIGHT);
Stringweight= 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(n+"");
    viewHolder.setsText.setText(sets);
    viewHolder.repsText.setText(reps);
    viewHolder.weightText.setText(weight);


}
return v;
}

@OverridepublicvoidbindView(View v, Context context, Cursor c) {
viewHolder = newViewHolder();
        // use cursor to get the integer
c = getCursor();
n = c.getPosition();
        // add one to the value to start at 1 instead of 0
n = n+1;
intsetsColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_SETS);
Stringsets= c.getString(setsColumn);

intrepsColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_REPS);
Stringreps= c.getString(repsColumn);

intweightColumn= c.getColumnIndex(ExerciseDbAdapter.KEY_WEIGHT);
Stringweight= 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(n+"");
    viewHolder.setsText.setText(sets);
    viewHolder.repsText.setText(reps);
    viewHolder.weightText.setText(weight);
}

}
}

Solution 2:

Try to override getview..,.

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater=(LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView=inflater.inflate(layout, null, true);

    EditText txt=(EditText)convertView.findViewById(R.id.labelNumber);

    txt.settext(position + 1);   //position starts from 0 thats why add 1return convertView;
}

Solution 3:

publicclassmyAdapterextendsSimpleCursorAdapter {

//    globle variablepublicmyAdapter() {
    //constructor
}

@OverridepublicintgetCount() {
    return0;
}

@Overridepublic Object getItem(int arg0) {
    returnnull;
}
@OverridepubliclonggetItemId(int arg0) {
    return0;
}

    @Overridepublic View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater)appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(layout, null, true);

EditText txt=(EditText)convertView.findViewById(R.id.labelNumber);

txt.settext(position + 1);   //position starts from 0 thats why add 1return convertView;
}

}

This is full simple cursor adapter..,.

Post a Comment for "How To Number Items In A List View?"