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

CursorAdapter getView()中,有一个参数position所以我可以做一个检查的position ,我怎么能在bindView()上做同样的事情,它在BindView没有position参数。

目前我重写newView()bindView()getView() ,我读和听到是坏的,要么重写getView()newView()getView()

谢谢。

Solutions Collecting From Web of "Android的 – 如何获取位置在像getView中的bindView?"

尝试这个

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

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