0

我有一个带有自定义适配器的列表视图,它显示来自联系人的名称。目前将它们显示为

罗希特
·拉胡尔
....

我希望它像

  1. 罗希特
  2. 拉胡尔……

即,应自动附加数字。我尝试在 bindview() 和 newview() 方法中使用计数变量来做到这一点,但是当我向下滚动并返回时它会变得混乱

我设置文本的方式是

name = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
contactName.setText(count + ". " + name);
4

4 回答 4

1

尝试

name = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
contactName.setText(cursor.getPosition() + ". " + name);
于 2013-01-23T14:43:25.850 回答
0

也许尝试:long count = cursor.getPosition();

于 2013-01-23T14:42:32.337 回答
0

您可以通过使用从 Cursor 获得位置

long count = cursor.getPosition();

然后

name = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
contactName.setText(cursor.getPosition() + ". " + name);
于 2013-01-23T14:52:23.897 回答
0

这应该可以满足您的需要:

public class CustomCursoAdapter extends SimpleCursorAdapter{

    public CustomCursoAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to) {
        super(context, layout, c, from, to);
        // TODO Auto-generated constructor stub
        }

    @Override
    public void bindView(View view, Context context, Cursor cursor)
    {
            int count =cursor.getPosition()+1;
            RelativeLayout rl = (RelativeLayout) view;
            TextView tv = (TextView) rl.findViewById(R.id.serial_no);
            tv.setText(""+count);
        super.bindView(view, context, cursor);
    }
}
于 2013-01-23T14:50:00.620 回答