2014-04-08 21 views
1

下面是我想:回到活动与新变量

  1. 在活动第一。一些变量接收值(变量A和B)
  2. 这里用户启动活动编号2。并设置一个变量(变量C)
  3. 用户按下一个按钮,将他带回活动1。
  4. 活动No.1。现在已经是所有三个变量的价值。

我可以将变量传递给Activity No.2。有意图并使用Bundle在那里检索它们。但是打开Activity No.1是否合适?通过使用基本上与我用来启动Activity No.2的行相同的行?

在活动一:

Intent intent = new Intent(getApplicationContext(), ActivityNo2.class); 
intent.putExtra("date", date); 
intent.putExtra("filename", filename); 
startActivity(intent); 

在活动二:

Bundle bundle = getIntent().getExtras(); 
String date = bundle.getString("date"); 
String filename = bundle.getString("filename"); 
String variableC = "somevalue"; 

什么是返回到活动一号的最佳途径。与新的变量?

+0

你是否在活动2中使用了通过它的变量? – codeMagic

+0

不,我不知道。当我回去时,我通过了它。 – erdomester

+0

那么为什么不使用'startActivityForResult()'来启动'Activity 2'? – codeMagic

回答

0

你在做什么可以工作,但有一个更好的方法。你这样做的方式只是创造更多可能的错误。 Android为这种场合提供了一个解决方案。您可以使用startActivityForResult()Activity 2。这将允许您将结果返回给Activity 1可变C.

只要你给的变量Activity 1正确的范围,他们将依然存在,当你回到onActivityResult()

This answer给出了一些关于如何使用它的解释。

+0

我有一个预感,这将是解决方案,只是不确定,然后我分心的世界startActivity。 – erdomester

0

你可以在类A(Activity 1)中获得一个变量,得到类A的实例(从类B [这是单例设计模式]),并通过setMethod设置该变量的值?