如何在 Android 应用程序中的活动之间传数据?

我有这样一个场景,在通过登录页面登录之后,每个activity都会有一个注销button。
在单击 sign-out时,我将把session id 注销。谁能教教我我如何保持session id可用于所有activities?

最简单的方法是将 session id 传给用于启动该活动的 Intent 中的 signout 活动:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);

访问下一个活动的 Intent:

String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");

在你当前的Activity中,创建一个新的 Intent:

String value="Hello world";Intent i = new Intent(CurrentActivity.this, NewActivity.class);    
i.putExtra("key",value);
startActivity(i);

然后在新的 Activity 中,检索这些值:

Bundle extras = getIntent().getExtras();if (extras != null) {
    String value = extras.getString("key");
    //The key argument here must match that used in the other activity}

使用此技术将变量从一个活动传到另一个活动。

传 Intent是一个很好的方法。
不过,Application 对象是另一种方式,当跨多个活动处理相同的状态时(相对于必须将它放在任何地方) ,或者处理比原语和字符串更复杂的对象时,它有时更容易。
您可以扩展 Application,然后在那里设置 / 获取您想要的任何内容,并使用 getApplication ()从任何 Activity (在同一个应用程序中)访问它。
还要记住,您可能看到的其他方法,如statics,,可能会有问题,因为它们可能导致内存泄漏。应用程序也有助于解决这个问题。

Intent myIntent = new Intent(this, NewActivity.class);
myIntent.putExtra("firstName", "Your First Name Here");
myIntent.putExtra("lastName", "Your Last Name Here");
startActivity(myIntent)

目标类(NewActivity 类) :

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.view);
    Intent intent = getIntent();
    String fName = intent.getStringExtra("firstName");
    String lName = intent.getStringExtra("lastName");}

写成静态的,最方便,最直观