android 修改数据库后cursor无法移动
@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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
cursor.moveToNext();不要在这里写啊。。。你在Adaper外面,先把数据查询到一个List里面,Adapter里直接绑定数据啊