有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从不同的活动更新ListAdapter

我正在做我的爱好项目,学习更多关于安卓编程和其他东西的知识。所以我最近遇到了一个简单的问题,但找不到解决办法

我的项目现在有两个活动[MainActivity][CommentActivity]

在MainActivity中,我有一个listadapter(cusAdapter)将从数据库中获取所有内容并将其显示在listview上。那里一切都很好。它将根据帖子id获取某篇帖子的所有评论和总评论。在同一个MainActivity中,我有一个评论按钮和一个onclick侦听器,单击该按钮时,用户将进入下一个活动[CommentActivity],并使用另一个自定义适配器加载所需的所有评论和数据。我还有一个total comment TextView,它将显示json获取的总注释,并将其显示在我的listview中

当用户在CommentActivity上发布评论时,它将通过AsyncTask保存到数据库中

现在的问题是,当我按下后退按钮并从CommentActivity导航回MainActivity时,我使用带有标志的意图(intent.flag\u activity\u reorder\u to\u front)。因此,当按下后退按钮时,它将不会再次重新加载MainActivity。此外,它永远不会更新MainActivity中的总注释。我要做的是,当CommentActivity上按下back按钮时,我希望它刷新/重新加载MainActivity中的ListAdapter,以从数据库中获取最新数据

另外,我不想重新加载整个MainActivity,我只想更新视图而不重新加载整个activity

我相信一定有一些简单的方法可以做到这一点。如果你们需要帮助我,我可以发布代码

多谢各位


共 (2) 个答案

  1. # 1 楼答案

    是的,有一个简单的方法。 使用以下各项开始您的第二项活动:

    • startActivityForResult(意图、结果和代码)
    • 将更改提交到数据库后,在第二个活动中使用setResult(RESULT_OK)
    • 在第一个活动中重写onActivityResult(),以检查第二个活动何时正确返回
    • 根据需要更新第一个适配器

    希望能有帮助

  2. # 2 楼答案

    在MainActivity中,您可以在Resume上签入,以查看数据是否已更改,因为当您从CommentActivity返回时,将调用此函数

    如果数据已更改,则在适配器上调用notifyDataSetChanged()将使用新数据重新加载视图