如何在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);
相關文章
相關標籤/搜索