0

在我的应用程序中,我有 3 个活动 A、B、C 我可以从 A-->B-->C 进行这样的操作,我想将数据从 A 传输到 B,将 A 的数据和 B 的数据传输到 C 并将数据保存到来自活动 C 的数据库。

我的问题是

--> 我在 B 中创建了一个后退按钮,单击它将转到活动 A。我正在使用

意图 goReceive1 = new Intent(Receive2.this,Receive1.class); 开始活动(goReceive1);

但它正在清除以前在 A 中的活动中输入的数据。我希望这些数据在返回时存在。我怎样才能做到这一点?...

--> 我还有一个疑问是我正在使用 Bundle 将数据从 A 传送到 B,但我没有使用 B 中的这些数据,我需要 C 中来自 A 和 B 的那些数据,以便我可以将整个数据保存到 DB来自 C.

请任何人帮我解决这个问题......在此先感谢......


我可以从 B-->A 使用 myActivity.onBackPressed(); 和以前的数据我可以在那里看到......

但是在从B返回之前---> A我在B中输入了一些数据。我再次从A-> B中返回然后B中的数据被清除了我不想丢失我输入的任何数据,直到我按下保存按钮来自活动 C。

有什么方法可以实现吗?...

4

2 回答 2

1

调用意图回到你以前的活动是完全错误的。你不应该这样做。

相反,在您在 Activity B 中创建的后退按钮中,只需调用此方法,

onBackPressed();

这是在您的设备中按下专用后退按钮时执行的默认方法。

而且,如果您需要通过意图传递数据,则无法绕过活动。您必须将其传递给下一个活动,然后再传递给下一个活动。您不能直接从 A 传递到 C。

但也许您可以使用 Application 类并从 Activity A 中保存数据并在 Activity C 中检索它。

编辑

扩展一个 Application 类并将所有数据保存在那里,然后在 C 中使用它。您必须学习如何使用 Application 类。这里的主要思想是存储在 Application 类中的数据在应用程序的运行时中是持久的。它不会被清除。或者您甚至可以选择共享偏好。

于 2012-10-10T10:52:31.230 回答
0

好的,这是您问题的解决方案。

您不想丢失任何数据并在所有活动中共享所有数据。因此,最好的方法是扩展Application类并将所有数据保存在应用程序中,您可以在应用程序的任何活动和服务中访问应用程序中的数据。因此,您可以将其用作活动之间进行交流的媒介。

要了解有关应用程序实例的更多信息,请查看此链接

http://developer.android.com/reference/android/app/Application.html

这是一个很好的例子http://www.helloandroid.com/tutorials/maintaining-global-application-state

于 2012-10-10T12:21:59.633 回答