【发布时间】:2016-01-07 06:52:53
【问题描述】:
我正在尝试通过共享首选项将一个字符串发送到另一个活动。我想回调相同的活动。
我有多个活动,它们共同调用一个活动。所以我想确定从哪个公共活动被调用,并想回到调用它的同一个活动。
这是我在第一个活动中完成的:
SharedPreferences mPrefs = getSharedPreferences("Type", 0);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("gosend","1");
editor.commit();
在第二个活动中
SharedPreferences mPrefs = getSharedPreferences("Type1", 0);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("goride", "2");
editor.commit();
共同活动
useLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences mPrefs = getSharedPreferences("Type", 0);
activityType = mPrefs.getString("gosend", "1");
SharedPreferences mPrefs1 = getSharedPreferences("Type1",0);
goride = mPrefs1.getString("goride","2");
if(activityType.equals("1")) {
intent = new Intent(ChooseFromMapActivity.this, GoSend.class);
startActivity(intent);
}
if(goride.equals("2"))
{
intent = new Intent(ChooseFromMapActivity.this, GoRideActivity.class);
startActivity(intent);
}
}
});
}
现在,当我从第一个活动调用公共活动时,我不会返回到相同的活动,而是第二个活动被调用。
怎么了??
编辑
我试过了:还是不行
useLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences mPrefs = getSharedPreferences("Type", 0);
activityType = mPrefs.getString("gosend", "0");
// SharedPreferences mPrefs1 = getSharedPreferences("Type1",0);
// goride = mPrefs1.getString("goride","0");
switch (activityType){
case "0":
intent = new Intent(ChooseFromMapActivity.this, GoSend.class);
startActivity(intent);
break;
case "1":
intent = new Intent(ChooseFromMapActivity.this, GoRideActivity.class);
startActivity(intent);
break;
}
}
【问题讨论】:
-
你的两个
if语句被一个一个调用,这就是为什么第二个活动被调用...使用if else -
你可以使用 SharedPreferences mPrefs = getSharedPreferences("Type", 0); inb 所有活动。以及在常见的活动中使用 if else
-
感谢您的回复.. 我使用 else if.. 这样我在第一次打电话时得到了第一个活动,但在第二个活动中我也得到了第一个活动。@ Sharp Edge跨度>
-
谢谢你的回复。你能告诉我代码吗? @user3676184
-
您在首选项中设置了 2 个键,
goride和gosend,if-statements都可能为真,您还有Type和Type1,我不确定它们是什么,但是您有两种不同的偏好吗?提示:使用intent extra string来传递SRC_ACTIVITY参数,所以在common Activity中你可以知道哪个activity叫做common。
标签: java android android-activity sharedpreferences