Ответ 1
Попробуйте это
public void bindView(View arg0, Context arg1, Cursor arg2)
{
int pos = arg2.getPosition();
}
В getView()
из CursorAdapter
есть параметр position
, поэтому я могу выполнить проверку для этого position
, как я могу сделать то же самое на bindView()
, у него нет параметра position
в BindView
> .
В настоящее время я переопределяю newView()
, bindView()
и getView()
, которые я читал и слышал плохо, либо переопределяю getView()
ИЛИ newView()
и getView()
.
Спасибо.
Попробуйте это
public void bindView(View arg0, Context arg1, Cursor arg2)
{
int pos = arg2.getPosition();
}
codeboys отвечает правильно, будет работать cursor.getPosition(). Но если кому-то нужна позиция в событии onClick подэлемента listitems, например, значок внутри listItem, решение состоит в том, чтобы поместить позицию в значение SetTag на значок и вернуть его при возникновении события:
@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());
}
});
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// TODO Auto-generated method stub
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup view) {
// TODO Auto-generated method stub
int mCount = cursor.getCount();
//Returns Total count(Rows) in cursor
int currentPostion= cursor.getPosition();
//Returns the current position of the cursor in the row set
}