【问题标题】:Updating an item of ListView from another Activity从另一个 Activity 更新 ListView 的一项
【发布时间】:2014-10-30 17:42:59
【问题描述】:

我正在 Activity A 中创建一个 ListView,其中包含某种 Post 视图,每个视图都有自己的类似按钮。 每个帖子都可以在活动 B 中作为单个帖子查看(我从服务器重新阅读,因为还有更多信息要展示)。

我正在尝试找出一种方法,如果用户单击 Activity B 上的“like”按钮(这会更新其自己的 Activity (B) 的服务器和 UI), 会更新同一篇文章的 UI (我在课程列表中有它的 ID 和位置) 在活动 A 上。

有什么想法吗?

【问题讨论】:

  • 你是怎么对付这个人的?我现在也有同样的情况:(
  • 解决方案其实很简单。我所做的是更新适配器拥有的数据,在我的情况下,它是特定帖子的点赞数。因此,对于一个实例,我调用我的帖子列表并调用特定的帖子添加类似方法:post.get(I).add like();之后只是调用了 adapter.notifyDatasetChanged();就是这样!
  • 好的,现在假设你有一个片段和一个包含所有帖子的列表,然后用户点击一个类别并重定向到类别片段,最后通过点击帖子进入帖子活动!并且在活动后用户喜欢这个!然后按返回,通过您的解决方案,我们可以处理此部分,但是当用户再次按返回并转到所有帖子列表时!怎么可能处理!我们有 2 个包含两个不同数据的列表 :( ( G+ app like!)
  • 如果您想更新所有帖子列表和类别列表上的帖子喜欢,您必须更新两个列表数据并调用 notifyDatasetChanged();在两个适配器上。
  • 是的,但是我应该如何获取每个列表数据的特定帖子位置?请在这里查看我的问题:stackoverflow.com/questions/27374445/…

标签: java android listview android-arrayadapter android-adapter


【解决方案1】:

您必须在另一个活动中为 ListView 更新 适配器数据,一旦您回到 onResume() 中的 Activity A,您可以将 notifyDatasetChanged() 调用到您的适配器并刷新您的 ListView新更新的数据。

【讨论】:

  • 好的,还有一个问题。如何让第一个 Activity 知道需要更改某些内容?
  • 对于标准 UI 更新,如果您的 Activity 处于暂停模式,您必须在您的 Activity 的onResume() 更新您的 UI 组件,并且对于标准数据更改,您必须为此创建接口。
  • 想通了。谢谢!
  • @user370305 好的,现在假设您有一个片段并有一个包含所有帖子的列表,然后用户点击一个类别并重定向到类别片段,最后通过点击帖子进入帖子活动!并且在活动后用户喜欢它!然后按回,通过您的解决方案,我们可以处理此部分,但是当用户再次按回并转到所有帖子列表时!怎么可能处理!我们有 2 个包含两个不同数据的列表 :((像 G+ 应用程序!-你知道他们是如何处理它的吗?)
  • @MAY3AM - 如果所有帖子列表在不同的活动中可用,那么每当您导航到帖子活动时,不要关闭或破坏以前的活动,只需打开帖子活动并通过喜欢帖子关闭活动,这样您以前的活动就会恢复从暂停模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
相关资源
最近更新 更多