Android 我希望在不重新加载页面的情况下刷新ListView
我希望在不重新加载页面的情况下刷新Android 我希望在不重新加载页面的情况下刷新ListView,android,android-layout,android-intent,android-widget,Android,Android Layout,Android Intent,Android Widget,我希望在不重新加载页面的情况下刷新列表视图。更确切地说,我有一个服务正在为活动中的列表视图发送数据,但是活动在服务能够获取数据之前很久就会加载。因此,我需要能够在活动已加载后加载/重新加载列表视图 在列表视图的适配器上调用notifyDataSetChanged()。在列表视图的适配器上调用notifyDataSetChanged(),只要你想刷新它。我发现,因此,我在类似的实现中采用了以下方法: AsyncTask获取doInBackground中的所有数据。然后,完成后,我第一次在onPos
列表视图
。更确切地说,我有一个服务正在为活动
中的列表视图
发送数据,但是活动
在服务
能够获取数据之前很久就会加载。因此,我需要能够在活动
已加载后加载/重新加载列表视图
在列表视图
的适配器
上调用notifyDataSetChanged()
。在列表视图
的适配器
上调用notifyDataSetChanged()
,只要你想刷新它。我发现,因此,我在类似的实现中采用了以下方法:
AsyncTask
获取doInBackground
中的所有数据。然后,完成后,我第一次在onPostExecute
中设置了列表适配器。为了让用户知道有东西正在加载,我只需在列表视图
的顶部放置一个文本视图
,并在onPreExecute
中将其文本设置为“loading..”,然后在数据准备好后在onPostExecute
中使其不可见
如果需要刷新数据,只需再次执行AsyncTask
我喜欢这种方式,因为您只需设置一次ArrayAdapter
(即当您最终拥有所有数据时)。更多关于异步任务的信息,以备您需要。这些文档有一些很好的示例代码。我发现了这一点,因此我在类似的实现中采用了以下方法:
AsyncTask
获取doInBackground
中的所有数据。然后,完成后,我第一次在onPostExecute
中设置了列表适配器。为了让用户知道有东西正在加载,我只需在列表视图
的顶部放置一个文本视图
,并在onPreExecute
中将其文本设置为“loading..”,然后在数据准备好后在onPostExecute
中使其不可见
如果需要刷新数据,只需再次执行AsyncTask
我喜欢这种方式,因为您只需设置一次
ArrayAdapter
(即当您最终拥有所有数据时)。更多关于异步任务的信息,以备您需要。文档中有一些很好的示例代码。我想使用IntentService
而不是Service
。通过使用IntentService
您将能够将数据发送到后台服务
,并在启动广播接收器
更新UI时接收更新的数据。这是一个完整的示例,说明了如何使用IntentService
来完成任务,我想说的是使用IntentService
而不是服务。通过使用IntentService
您将能够将数据发送到后台服务
,并在启动广播接收器
更新UI时接收更新的数据。这是一个使用IntentService
完成任务的完整示例