Подтвердить что ты не робот

Android - Как получить позицию в bindView, как в getView?

В getView() из CursorAdapter есть параметр position, поэтому я могу выполнить проверку для этого position, как я могу сделать то же самое на bindView(), у него нет параметра position в BindView > .

В настоящее время я переопределяю newView(), bindView() и getView(), которые я читал и слышал плохо, либо переопределяю getView() ИЛИ newView() и getView().

Спасибо.

4b9b3361

Ответ 1

Попробуйте это

public void bindView(View arg0, Context arg1, Cursor arg2)
{
    int pos = arg2.getPosition();
}

Ответ 2

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());
        }
    });
}

Ответ 3

@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
}