2011-11-09 190 views
0

如何在android中的兩個活動之間傳遞數據?如何在android中的兩個活動之間傳遞數據?

以下是我的代碼: -

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

其次,我使用SharedPreferences爲: -

對於傳遞數據: -

SharedPreferences gameSettings = getSharedPreferences("MyGamePreferences",MODE_PRIVATE); 
SharedPreferences.Editor prefEditor = gameSettings.edit(); 
prefEditor.putString("UserName", "Guest123"); 
prefEditor.putBoolean("PaidUser", false); 
prefEditor.commit(); 

對於接下來的活動中獲取數據: -

SharedPreferences gameSettings = PreferenceManager 
           .getDefaultSharedPreferences(getBaseContext()); 
String s= gameSettings.getString("UserName", "Dipak"); 
Boolean b= gameSettings.getBoolean("PaidUser", true); 

但數據沒有進入下一個活動。

+0

你想通過使用putExtra的數據? –

回答

0

爲什麼不使用mIntent.putExtra()將數據傳遞給另一個活動? (假設你的sessionId作爲整數)

int sessionId=getIntent().getIntExtra("EXTRA_SESSION_ID"); 

,並正在從SharedPreferences是絕對correct.I不知道獲取值的方式:

看到你的代碼,你可以通過讓你的sessionId的下一個活動爲什麼你沒有在下一個活動中獲得他們。

1

對於第一種方法使用下面的行中獲取價值

int sessionId=getIntent().getIntExtra("EXTRA_SESSION_ID"); 

對於使用SP獲得的數據也使用此行

SharedPreferences gameSettings = getSharedPreferences("MyGamePreferences",MODE_PRIVATE); 
1

那不就是因爲你使用工作的原因兩個不同的偏好文件。在這兩個地方使用默認的共享首選項,它應該工作。然而,如果你只是想傳遞數據,那不是這樣做的,你應該在你的意圖中使用更多的額外資源。

3

你可以試試這個:

string dataToPass= "Hello I am activity one"; 
Intent intent = new Intent(this, NextActivity.class); 
intent.putExtras("KeyToAccessData", dataToPass); 
startActivity(intent); 

而在NextActivity,得到這樣的數據:

String datatoCollect; 
Intent intent = getIntent(); 
dataToCollect = intent.getStringExtra("KeyToAccessData"); 

如果傳遞的數據是一個對象,那麼你可以檢查出Parcelable

0

這就是我的做法,它適用於我。活性之間

Intent in = new Intent(this, SecondWindow.class); 
     Bundle bundle = new Bundle(); 
     bundle.putString("userName", "Name"); 
     bundle.putString("pwd", "password"); 
      in.putExtras(bundle); 
     startActivity(in); 
在SecondWindow.java

,onCreate方法

Bundle params = getIntent().getExtras(); 

     String username= params.getString("userName"); 
     String pwd= params.getString("pwd"); 
0

使用下面的代碼將變量從一個Activity傳遞到另一個。在新的活動

Intent i = new Intent(this, YourActivity.class); 
i.putExtra("key","value"); 
startActivity(i); 

之後,獲得的價值:

在你當前活動,創建一個新的意向

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    String value = extras.getString("key"); 
} 
相關問題