传递参数而不打开活动

时间:2014-04-11 08:34:38

标签: android android-intent

我是Android上的新手编程。我有一个问题,我有2个活动。我将活动A中的参数传递给B,如下所示:

Intent intent = new Intent(getBaseContext(), ActivityB.class);
intent.putExtra("ALMACEN_ANTES", almacen.getText().toString());
startActivity(intent);

现在在活动中,我会得到额外的东西。自从活动B以后,我也将参数传递给了A. 我的问题是,是否可以在不做的情况下将参数传递给另一个活动   Intent intent = new Intent(getBaseContext(), ActivityB.class)因为我不想打开相同活动的2倍。

谢谢!

2 个答案:

答案 0 :(得分:0)

是的。您可以使用 SharedPreferences

保存该值

它将存储在内部xml文件中,您可以随时保存并重试。值传递时无需启动活动。

下面的示例

 SharedPreferences sharedpreferences;
  Editor editor = sharedpreferences.edit();
  editor.putString(Name, n);
  editor.putString(Phone, ph);
  editor.commit;

您可以从需要访问这些值的活动中检索此值。它可以通过以下方式完成:

   SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
  String name=sharedpreferences.getString("Name","");
  String ph=sharedpreferences.getString("Phone","");

答案 1 :(得分:0)

您想要更新活动A中的值,是什么意思?因为如果你不打开它为什么要给它发送一个值呢?

您可以通过其他方式在两个活动之间共享数据。在你的情况下,最好的一个是Singleton类:

您创建了一个继承自Application并包含您的数据的类,并且您可以从每个活动中更新数据或获取数据......

你的单身人士课程:

import android.app.Application;
public class MyApplication extends Application {
  private String data;
  public String getData() {return data;}
  public void setData(String data) {this.data = data;}
}

从活动B,您可以设置数据:

MyApplication app = (MyApplication) getApplicationContext();
app.setData(someData);

Ativity A可以像这样拥有它们:

MyApplication app = (MyApplication) getApplicationContext();
String data = app.getData();

请参阅此answer