In getView()
of CursorAdapter
, there's a parameter position
so I can do a checking for that position
, how can I do the same on bindView()
it has no position
parameter in BindView
.
Currently I'm overriding newView()
, bindView()
and getView()
which I read and heard is bad, either override getView()
OR newView()
and getView()
.
Thanks.
Try this
public void bindView(View arg0, Context arg1, Cursor arg2)
{
int pos = arg2.getPosition();
}
codeboys answer is correct, cursor.getPosition() will do. But if someone needs position in the onClick event of listitems subitem, for instance icon inside the listItem, the solution is to put a position as setTag on the icon and retreive it when event occurs:
@Override
public void bindView(View vw, Context ctx, final Cursor cursor) {
/* ...
* do your binding
*/
ImageView icon = (ImageView) vw.findViewById(R.id.your_icon);
icon.setTag(cursor.getPosition()); // here you set position on a tag
icon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// use a tag to get the right position
((MainActivity) context).onIconClick((int)v.getTag());
}
});
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With