Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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_Parse Platform - Fatal编程技术网

Android 更新从解析返回的列表的最佳实践?

Android 更新从解析返回的列表的最佳实践?,android,parse-platform,Android,Parse Platform,我目前正在使用Parse返回的对象列表创建一个新适配器,然后执行.setAdapter()。这让我不安,因为我似乎在不必要地重新创建适配器,而不是修改现有的列表引用,然后只调用.notifyDataSetChanged() 我唯一能想到的另一件事是将旧列表与新列表进行比较,并根据解析返回的对象添加/删除对象以更新旧列表的状态。这样做的最佳实践方式是什么 我还犹豫是否将该项添加到我的列表中,因为我不希望在解析服务器和我的客户机之间出现数据不一致的情况 我想我最终要寻找的是,如果对象列表得到更新,是

我目前正在使用Parse返回的对象列表创建一个新适配器,然后执行
.setAdapter()
。这让我不安,因为我似乎在不必要地重新创建适配器,而不是修改现有的列表引用,然后只调用
.notifyDataSetChanged()

我唯一能想到的另一件事是将旧列表与新列表进行比较,并根据解析返回的对象添加/删除对象以更新旧列表的状态。这样做的最佳实践方式是什么

我还犹豫是否将该项添加到我的列表中,因为我不希望在解析服务器和我的客户机之间出现数据不一致的情况

我想我最终要寻找的是,如果对象列表得到更新,是否会提供回调解析


对于旧版Listview,更改列表数据并调用notify。。。这就足够了。您可以在适配器中使用getter/setter将适配器数据设置为新列表,并调用notifyDatasetChanged()。这是您必须要做的事情,因为正如您所确定的,列表数据可能完全不同,并且您希望数据在客户端保持一致。由于您正在更新一个现有适配器,而不是创建一个全新的适配器,因此此方法将更加有效。要在RecycleView中获得良好的添加/删除/更改动画,没有其他方法可以比较这些项。如果不使用此方法,请仅调用datasetchanged()。这样的回调不存在,因为这不是解析的工作方式。看看Firebase,它提供了这样的回调。我猜他使用的是ListView。如果您使用RecyclerView,请显示更多代码,以便我们提供帮助。但是,可以通过SortedList来比较项目。如果我设置ArrayAdapter的构造函数中使用的列表,然后调用.notifyDataSetChanged(),这还不足以导致ListView更新。我假设这是因为阵列适配器仍然保留对旧列表的引用,即使它仍然是相同的成员变量。对于旧Listview,更改列表的数据并调用notify。。。这就足够了。您可以在适配器中使用getter/setter将适配器数据设置为新列表,并调用notifyDatasetChanged()。这是您必须要做的事情,因为正如您所确定的,列表数据可能完全不同,并且您希望数据在客户端保持一致。由于您正在更新一个现有适配器,而不是创建一个全新的适配器,因此此方法将更加有效。要在RecycleView中获得良好的添加/删除/更改动画,没有其他方法可以比较这些项。如果不使用此方法,请仅调用datasetchanged()。这样的回调不存在,因为这不是解析的工作方式。看看Firebase,它提供了这样的回调。我猜他使用的是ListView。如果您使用RecyclerView,请显示更多代码,以便我们提供帮助。但是,可以通过SortedList来比较项目。如果我设置ArrayAdapter的构造函数中使用的列表,然后调用.notifyDataSetChanged(),这还不足以导致ListView更新。我假设这是因为数组适配器仍然持有对旧列表的引用,即使它仍然是相同的成员变量。