【问题标题】:how can I value pass between 2 activity [closed]我如何在 2 个活动之间传递价值 [关闭]
【发布时间】:2013-02-19 14:13:53
【问题描述】:

我正在尝试编写一个像备忘录这样的应用程序。 首先是 A_activity 中的 listView。 我还有第二个名为 B_activity 的活动来做备忘录。 我在 A_activity 中放了一个按钮,并用它来添加备忘录。 所以,我使用 Intent 将 A_activity 切换到 B_activity。

现在问题来了:
我使用相同的方式将 B_activity 切换回 A_activity 并使用一个包存储值。 我想要的结果是 listView 会添加我刚刚创建的备忘录,而旧的备忘录将保留。 但都失败了。 我知道该怎么做,但不知道如何编写代码。 谁能举个例子?

【问题讨论】:

  • 请更清楚地制定您想要实现的目标。我认为由于标题具有误导性,大多数阅读您的问题的人都误解了您。
  • 对不起,我不擅长英语。我知道,但我想尝试写一些类似 memolist 的东西。 A 中的备忘录列表,如果我想添加或修改备忘录,请单击 B 的按钮以更改或添加值。完成后回到A。这就是我想做的。
  • 并且...如果您只想切换活动,究竟有什么问题?完成第一个并开始第二个,反之亦然。如果您发布一些代码,也许有人可以帮助您。
  • 好的。我回到办公室时会更新​​。

标签: android android-intent bundle


【解决方案1】:

在将数据传递给 listView 之前,在您的 A 活动中检查 bundle 是否为空。

前-

Bundle bundle = getIntent().getExtras();
if(bundle != null)
{
    // pass your values to listview
} else {
    return;
}

改为使用 startActivityForResult();这类操作的方法。

【讨论】:

    【解决方案2】:

    如果我理解正确,您将Intent 从 A 发送到 B,然后经过一些逻辑将 Intent 从 B 发送到 A,并多次执行此操作。如果我是正确的,这是非常糟糕的方法。您的活动堆栈将被填充,并且后退按钮将不正确。我认为您应该使用 A 中的 startActivtyForResult() 和 B 中的 setResult()。我希望我是对的。这样就可以将Bundle从A传给Intent,将Bundle返回给onResult()

    祝你好运!

    【讨论】:

    • 我知道,但我想尝试写一些类似 memolist 的东西。 A 中的备忘录列表,如果我想添加或修改备忘录,请单击 B 的按钮以更改或添加值。完成后回到 A。
    • 有什么可以做到的吗?
    • 好的,我明白了。问题出在哪里?)
    • 返回到 A 的最后一步失败了。备忘员清理所有旧备忘。
    • 在您的第一个活动的 onCreate 中,尝试来自@Hisham Muneer 的答案。如果你做得对,这将起作用
    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 2016-12-03
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    相关资源
    最近更新 更多