Android - 如何在getView中获取bindView中的位置?

时间:2013-01-28 02:32:11

标签: android cursor android-cursoradapter

getView()的{​​{1}}中,有一个参数CursorAdapter,因此我可以对position进行检查,如何在position上执行此操作它在bindView()中没有position参数。

目前我正在覆盖BindViewnewView()bindView()我听说不好,要么覆盖 getView() getView()newView()

感谢。

3 个答案:

答案 0 :(得分:35)

试试这个

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

答案 1 :(得分:4)

codeboys的回答是正确的,cursor.getPosition()会做。 但是如果某人需要在listitems子项的onClick事件中占据位置,例如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());
        }
    });
}

答案 2 :(得分:0)

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