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?"