我是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倍。
谢谢!
答案 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