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

我有一种状况,在经过登陆页面登陆后,每一个activity上都会有一个退出buttonhtml

点击sign-out ,我将传递已登陆用户的session id以便退出。 谁能指导我如何使session id可供全部activitiesjava

这种状况的任何替代方法 android


#1楼

在活动之间传递数据的最方便方法是传递意图。 在您要发送数据的第一个活动中,应添加代码, git

String str = "My Data"; //Data you want to send
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("name",str); //Here you will add the data into intent to pass bw activites
v.getContext().startActivity(intent);

您还应该导入 github

import android.content.Intent;

而后,在下一个Acitvity(SecondActivity)中,应该使用如下代码从意图中检索数据。 session

String name = this.getIntent().getStringExtra("name");

#2楼

另外一种方法是使用存储数据的公共静态字段,即: app

public class MyActivity extends Activity {

  public static String SharedString;
  public static SomeObject SharedObject;

//...

#3楼

活动之间的数据传递主要是经过意图对象进行的。 框架

首先,您必须使用Bundle类将数据附加到意图对象。 而后使用startActivity()startActivityForResult()方法调用活动。 this

您能够经过博客文章“将数据传递给Activity”中的示例找到有关它的更多信息。 spa


#4楼

我最近发布了Vapor API ,这是一个jQuery风格的Android框架,它使诸如此类的各类任务变得更加简单。 如前所述, SharedPreferences是您能够执行此操做的一种方法。

VaporSharedPreferences被实现为Singleton,所以是一种选择,而且在Vapor API中,它具备重载的.put(...)方法,所以您没必要明确担忧要提交的数据类型-只要受支持便可。 它也很流利,所以您能够连接呼叫:

$.prefs(...).put("val1", 123).put("val2", "Hello World!").put("something", 3.34);

它还能够选择自动保存更改,并在后台统一读取和写入过程,所以您无需像在标准Android中同样显式地检索Editor。

或者,您可使用Intent 。 在蒸气API,您还可使用可连接的重载.put(...)上的方法VaporIntent

$.Intent().put("data", "myData").put("more", 568)...

如其余答案中所述,并将其做为额外的内容传递。 您能够从Activity检索其余内容,此外,若是您使用的是VaporActivity此操做会自动完成,所以您可使用:

this.extras()

要在“ Activity的另外一端检索它们,请切换到。

但愿一些人感兴趣:)


#5楼

您只须要在发送意向时发送额外内容。

像这样:

Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("Variable name", "Value you want to pass");
startActivity(intent);

如今,在SecondActivityOnCreate方法上,您能够像这样获取其余功能。

若是您发送的值long

long value = getIntent().getLongExtra("Variable name which you sent as an extra", defaultValue(you can give it anything));

若是您发送的值为String

String value = getIntent().getStringExtra("Variable name which you sent as an extra");

若是您发送的值是Boolean

Boolean value = getIntent().getBooleanExtra("Variable name which you sent as an extra", defaultValue);
相关文章
相关标签/搜索