如何在Android应用程序中的活动之间传递数据?
我有一个场景,在通过登录页面登录后,每个activity
都会有一个注销button
。
在点击退出时,我会传递登录用户的session id
以注销。 任何人都可以指导我如何保持session id
可用于所有activities
?
任何替代这种情况
最简单的方法是将会话ID传递给用于启动活动的Intent
的注销活动:
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);
访问意图下一个活动
String s = getIntent().getStringExtra("EXTRA_SESSION_ID");
Intents的文档包含更多信息(请参阅标题为“Extras”的部分)。
在您当前的活动中,创建一个新的Intent
:
String value="Hello world";
Intent i = new Intent(CurrentActivity.this, NewActivity.class);
i.putExtra("key",value);
startActivity(i);
然后在新的活动中,检索这些值:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("key");
//The key argument here must match that used in the other activity
}
使用这种技术将变量从一个Activity传递到另一个。
Erich指出,传递意图附加组件是一种很好的方法。
Application对象是另一种方式,当处理多个活动中的相同状态(而不是必须将其放到/放在任何地方)或比基元和字符串更复杂的对象时,它有时更容易。
您可以扩展应用程序,然后设置/获取您想要的任何内容,并使用getApplication()从任何活动(在同一应用程序中)访问它。
另外请记住,您可能会看到的其他方法(如静态方法)可能会有问题,因为它们可能会导致内存泄漏。 应用程序也有助于解决此问题
链接地址: http://www.djcxy.com/p/4453.html上一篇: How do I pass data between Activities in Android application?