在我的应用程序中,我有3个活动A,B,C 我可以从A - > B - > C开始,这样我想将数据从A传送到B,将A的数据和B的数据传送到C,并将数据从活动C保存到数据库。
我的问题是
- >我在B中创建了一个后退按钮,点击它将转到活动A.我正在使用
Intent goReceive1 = new Intent(Receive2.this,Receive1.class); startActivity(goReceive1);
但它正在清除以前在A中的Activity中输入数据。我希望这些数据在返回时存在。 我怎样才能实现这一目标?...
- >我有一个疑问是我使用Bundle将数据从A传递到B但是我没有在B中使用那些数据我需要C中A和B的那些数据,这样我就可以从C中将整个数据保存到DB中。
请有人帮我解决这个问题...... 在此先感谢..
我可以使用myActivity.onBackPressed()来自B - > A;以前的数据我能看到那里......
但是从B回来之前--->我在B中输入了一些数据。我再次从A - > B开始,然后B中的数据被清除了我不想丢失我输入的任何数据,直到我按活动C中的保存按钮。
有没有办法实现这一目标?...
答案 0 :(得分:1)
调用意图回到之前的活动是完全错误的。你不应该这样做。
相反,在您在活动B中创建的后退按钮中,只需调用此方法,
onBackPressed();
这是在设备中按下专用后退按钮时执行的默认方法。
此外,如果您需要通过意图传递数据,则无法通过传递活动。您必须将其传递给下一个活动,然后传递给下一个活动。你不能直接从A传递给C.
但也许你可以使用Application类并从Activity A保存数据并在Activity C中检索它。
修改强>
扩展Application类并将所有数据保存在那里,然后在C中使用它。您必须学习如何使用Application类。这里的主要思想是存储在Application类中的数据在应用程序的运行时间内是持久的。它不会被清除。或者你甚至可以选择共享偏好。
答案 1 :(得分:0)
好的,这是你问题的解决方案。
您不希望丢失任何数据并共享所有活动中的所有数据。因此,最好的方法是扩展Application
类并将所有数据保存在应用程序中,并且您可以访问应用程序的任何活动和服务中的应用程序中的数据。因此,您可以将其用作活动之间的沟通媒介。
了解有关应用程序实例的更多信息,请查看此链接
http://developer.android.com/reference/android/app/Application.html
这是http://www.helloandroid.com/tutorials/maintaining-global-application-state
的一个很好的例子