Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义游标适配器无法在视图中正常工作_Android_Listview_Simplecursoradapter - Fatal编程技术网

Android 自定义游标适配器无法在视图中正常工作

Android 自定义游标适配器无法在视图中正常工作,android,listview,simplecursoradapter,Android,Listview,Simplecursoradapter,我正在处理listview。我使用了自定义光标适配器,其中newbind和bindview被viewholder覆盖。 每当第一次打开listview时,调用newbind,然后为每一行调用bindview。并显示该列表。 在listview上,数据发生更改时,listview应使用新行进行更新。我的问题是: 将新行更新到现有listview时,是否只调用bindview?或者先调用newbind,然后调用bindview 在我的例子中,只调用bindview,它使用以前的holder实例并更新

我正在处理listview。我使用了自定义光标适配器,其中newbind和bindview被viewholder覆盖。 每当第一次打开listview时,调用newbind,然后为每一行调用bindview。并显示该列表。 在listview上,数据发生更改时,listview应使用新行进行更新。我的问题是:

将新行更新到现有listview时,是否只调用bindview?或者先调用newbind,然后调用bindview

在我的例子中,只调用bindview,它使用以前的holder实例并更新相同的实例

当使用自定义SimpleCorsOrAdaptor with holder更新listview时,默认行为是什么

试试这个

adapter.notifyDataSetChanged();
使用 在设置适配器之前,请执行以下操作:

adapter.notifyDataSetChanged();
listview.setAdapter(adapter);

这些方法解决了不正确显示的问题

我需要在哪里写这篇文章。在活动中,我在onLoadFinished和OnLoaderResety中有adapter.swapcursor,您必须重新查询,然后通知DatasetChanged.ok将尝试此操作。你们能帮我解决问题和行为吗?因为我是android新手。当然,请发布这个问题。如果你有,我已经在链接中发布了一个问题。你提到的解决方案会在链接中起作用吗?
adapter.notifyDataSetChanged();
listview.setAdapter(adapter);
@Override
public int getItemViewType(int position) {
    Cursor cursor = (Cursor) getItem(position);
    return getItemViewType(cursor);
}

@Override
public int getViewTypeCount() {
    return 2;
}