Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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 更新ListView,即使其适配器为空_Android_Listview_Adapter - Fatal编程技术网

Android 更新ListView,即使其适配器为空

Android 更新ListView,即使其适配器为空,android,listview,adapter,Android,Listview,Adapter,我想更新我的列表,即使适配器为null,但我不知道怎么做 当我执行以下代码时,我的应用程序崩溃: ProductAdapter adapter = new ProductAdapter(context, R.layout.listrow, yal); if(adapter.getCount()>0){ lv.setAdapter(adapter); }else{ lv.setAdapter(null); } adapter.notifyDataSetChanged(); lv.

我想更新我的列表,即使适配器为
null
,但我不知道怎么做

当我执行以下代码时,我的应用程序崩溃:

ProductAdapter adapter = new ProductAdapter(context, R.layout.listrow, yal);
if(adapter.getCount()>0){
   lv.setAdapter(adapter);
}else{
   lv.setAdapter(null);
}
adapter.notifyDataSetChanged();
lv.invalidateViews();

适配器是列表的某种数据源。它提供了单个列表项。如果没有适配器,就不能有列表,因为这样列表中就不会有行


查看以了解更多信息。

适配器是列表的某种数据源。它提供了单个列表项。如果没有适配器,就不能有列表,因为这样列表中就不会有行


查看以了解更多信息。

不要使适配器无效-listView始终需要一个适配器。相反,如果数据集为null(或空),请将适配器使用的数据集置为null,并确保
getCount()
返回
0
。或者不要使数据集为空,而是将其设置为空列表或数组

如果数据发生更改,请更新适配器数据集并在适配器上调用notifyDatasetChanged()。获取新数据时,不要为ListView创建新适配器。这很重要,有几个原因;e、 g.listViews位置不会跳到顶部,而是保持在原来的位置

例如:

ProductAdapter adapter = new ProductAdapter(context, R.layout.listrow, null);
listView.setAdapter(adapter);
后来


不要使适配器无效-listView总是需要一个适配器。相反,如果数据集为null(或空),请将适配器使用的数据集置为null,并确保
getCount()
返回
0
。或者不要使数据集为空,而是将其设置为空列表或数组

如果数据发生更改,请更新适配器数据集并在适配器上调用notifyDatasetChanged()。获取新数据时,不要为ListView创建新适配器。这很重要,有几个原因;e、 g.listViews位置不会跳到顶部,而是保持在原来的位置

例如:

ProductAdapter adapter = new ProductAdapter(context, R.layout.listrow, null);
listView.setAdapter(adapter);
后来


lv.setAdapter是否为空;是否将适配器设置为空?如果是,倒数第二行是否引发空指针异常?你能给我们看一下日志文件吗?如果适配器为null或空,你就没有列表了。那么有什么需要更新的呢?我从列表中删除了1个项目,这样就没有剩下任何项目了。它将显示一个空列表,但我的应用程序crashesdos lv.setAdapter(null);是否将适配器设置为空?如果是,倒数第二行是否引发空指针异常?你能给我们看一下日志文件吗?如果适配器为null或空,你就没有列表了。那么有什么需要更新的呢?我从列表中删除了一个项目,这样就没有剩余的项目了。我会显示一个空列表,但我的应用程序崩溃了。我想更新我的列表,但列表中还有一个项目不在,所以我想更新我的列表,而不重新加载活动。这不是问题所在。您询问如何更新具有空适配器的列表。如果要更新列表,请提供新适配器,或更改当前适配器中的项,然后调用datasetChanged。不要将适配器设置为null。问题是,当我的适配器中没有项目时,我的应用程序崩溃否,根据您提供的代码,当您的适配器没有项目时,应用程序崩溃,因为您将ListView适配器设置为null-
lv.setAdapter(null)。你不应该那样做。ListView需要一个适配器。好的,那么您现在有另一个问题了。我不能为你做你的工作。特别是当您不提供错误日志和适配器的额外代码时。从你的评论中,我知道你应用了我的答案,所以要么接受我的答案,要么在其他地方寻找其他解决方案。这就是我想更新我的列表的要点,但列表中仍有一项不存在,因此我想更新我的列表,而不重新加载活动。这不是问题所在。您询问如何更新具有空适配器的列表。如果要更新列表,请提供新适配器,或更改当前适配器中的项,然后调用datasetChanged。不要将适配器设置为null。问题是,当我的适配器中没有项目时,我的应用程序崩溃否,根据您提供的代码,当您的适配器没有项目时,应用程序崩溃,因为您将ListView适配器设置为null-
lv.setAdapter(null)。你不应该那样做。ListView需要一个适配器。好的,那么您现在有另一个问题了。我不能为你做你的工作。特别是当您不提供错误日志和适配器的额外代码时。从你的评论中,我知道你应用了我的答案,所以要么接受我的答案,要么在别处寻找其他解决方案。