如何在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 :(得分: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
答案 1 :(得分:2)
在活动之间传递数据是由intent对象。您可以使用Bundle类的对象将数据附加到intent对象。 从这里http://codeglympse.blogspot.in/2012/10/passing-data-to-activity.html
了解更多相关信息答案 2 :(得分:1)
对于第一种方法,使用以下行获取值
int sessionId=getIntent().getIntExtra("EXTRA_SESSION_ID");
使用SP获取数据也可以使用此行
SharedPreferences gameSettings = getSharedPreferences("MyGamePreferences",MODE_PRIVATE);
答案 3 :(得分:1)
不起作用的原因是因为您使用了两个不同的偏好文件。在两个地方使用默认的共享首选项,它应该工作。但是,如果您只想传递数据,那不是这样做的,那么您应该在意图中使用更多的额外内容。
答案 4 :(得分:0)
为什么不使用mIntent.putExtra()将数据传递给另一个活动?
看到您的编码,您可以使用以下内容获取您的sessionId :(假设您的sessionId为整数)
int sessionId=getIntent().getIntExtra("EXTRA_SESSION_ID");
你从SharedPreferences获取价值的方式绝对正确。我不知道你为什么不参加下一次活动。
答案 5 :(得分: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");