【问题标题】:Android: Updating List view or UI after executing asynctask?Android:执行异步任务后更新列表视图或 UI?
【发布时间】:2016-02-19 17:49:50
【问题描述】:

我的 android 应用程序启动了一个包含列表视图的活动。 Activity 还包含一个 Button,当按下它时,它在 asynctask 上运行并产生一些结果,应该更新(再添加一项)到列表视图。在我的情况下,问题是 asynctask 产生结果,但我不知道如何更新我的列表视图。 我也不想使用加载符号。

【问题讨论】:

  • 你在异步任务的后期执行中得到响应
  • 是的,执行后返回结果。
  • 然后添加您的代码以便更好地理解

标签: android android-asynctask


【解决方案1】:

AsyncTaskonPostExecute() 中,您应该将新项目添加到所需数据的 List 或 ArrayList 中,然后调用listAdapter.notifyDatasetChanged() 将更新您的列表视图的内容。

【讨论】:

  • 如果我的 asynctask 在单独的类中,如何通过 post execute 方法向 ui 通知。
  • 你最好在同一个类中定义它,它应该更新ui。
【解决方案2】:

在 onpostexecute() 方法中更新您的数组列表。然后调用 notifydatasetchange 方法更新列表。

关于如何添加检查这个-https://stackoverflow.com/a/19468504/2128166

【讨论】:

    【解决方案3】:

    这很简单。当 doInBackground() 方法返回一些东西时,你必须重写 onPostExecuteMethod()。在此方法中,您位于 MainThread 上,因此您可以调用例如:

    protected void onPostExecute(List<String> result) {
         list.clear();
         list.addAll(result);
         adapter.notifyDataSetChaned();
    }
    

    【讨论】:

    • clear() 和 allAll 只是两种方法,可能没有必要。
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多