【问题标题】:how to update values in activity from another activity in android?如何从android中的另一个活动更新活动中的值?
【发布时间】:2015-01-06 09:43:30
【问题描述】:

我有一个名为 FeedActivity 的活动,其中包含一些数据的数组列表。在单独的类中名为 FeedAdapter 的适配器也用于填充 FeedActivity 中的列表视图。当我们从 FeedAdapter 中单击 listview 行时,FeedDetailsActivity 会显示提要的详细信息(listview 单行数据)。 我想要做的是,我将 arraylist 从 FeedActivity 传递给 FeedAdpter 的构造函数,这样就在 FeedAdapter 类中创建了一个新的 arraylist 副本。当我从 FeedAdapter 转到 FeedDetails 时,我会显示该特定提要的所有信息(listview 单行数据)。现在用户可以从 FeedDetailActivity 更改提要详细信息中的数据。 我的问题是,当我更改 FeedDetailActivity 中的数据时,它必须反映在 FeedActivity 的列表视图中。但该列表正在填充来自 FeedAdapter 的重复数组列表的数据。我怎样才能做到这一点 。请让我知道,因为我已经尝试了很多。

【问题讨论】:

  • 如果我使用静态数组列表,那么这会容易得多,但这不是一个好方法,因为它在拥有大型静态数组列表的同时会消耗大量内存
  • 先生,您的解释很详细,但是发布您的代码会让人们根据您的代码帮助您..

标签: android listview android-activity adapter


【解决方案1】:

这更像是一个 Java 逻辑问题,而不是 Android 特有的问题。

我的理解是你想从当前的Activity更新之前的Activity。

您可以创建回调方法,或使用 Intent,或将数组设为静态(然后可以从两个类中访问它)。

另一种方法是终止前一个活动并重新启动该活动,将更新后的 ArrayList 作为额外数据传递。

【讨论】:

  • 我做了什么 1. 制作静态数组列表(有效但消耗大量内存) 2. 可以再次终止并重新启动活动,但我将不得不再次调用服务器来获取数据,并且还会有管理列表视图位置。 3. 来自适配器的 startActivityForResult 但是当我返回我的主要活动时不会立即调用它
  • 我也列出了其他方法。最好的方法是创建回调方法。
  • 有道理。让我试试吧
【解决方案2】:

您可以使用观察者设计模式(最适合这种类型的场景)http://en.wikipedia.org/wiki/Observer_pattern

否则更有可能使用LocalBroadcastReceiver示例here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2015-02-04
    相关资源
    最近更新 更多