android 修改数据库后cursor无法移动

发布于 2022-09-07 04:05:01 字数 1349 浏览 11 评论 0

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = newView(mContext, mCursor, parent);
} else {
view = convertView;
}
notifyDataSetChanged();
bindView(view, mContext, mCursor);
return view;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
if(cursor.getPosition()==-1) {
cursor.moveToNext();
ViewHolder viewholder = (ViewHolder) view.getTag();
viewholder.name.setText(cursor.getString(PHONES_DISPLAY_NAME_INDEX) + "");
viewholder.number.setText(cursor.getString(PHONES_NUMBER_INDEX) + "");
Long contactid = cursor.getLong(PHONES_CONTACT_ID_INDEX);
Long photoid = cursor.getLong(PHONES_PHOTO_ID_INDEX);
Bitmap contactPhoto;
if (photoid > 0) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactid);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(mContext.getContentResolver(), uri);
contactPhoto = BitmapFactory.decodeStream(input);
} else {
contactPhoto = BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_launcher);
}
viewholder.ivHead.setImageBitmap(contactPhoto);
}
}

在新创建的activity中修改数据后返回listview 显示的是两个相同的item 发现数据改变时调用bindview调用的Cursor还是指向最后一行 如何修改

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅一夜美梦 2022-09-14 04:05:01

cursor.moveToNext();不要在这里写啊。。。你在Adaper外面,先把数据查询到一个List里面,Adapter里直接绑定数据啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文