2011-11-09 49 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"); 
} 
相关问题