Java 概述按钮开关活动
我有两个活动活动活动A和活动B。我的应用程序在活动A中启动,活动A上有一个按钮指向活动B。当我在活动B中时,我按概览按钮(方形按钮)并选择我的应用程序。当我的应用程序加载时,活动B将被销毁,并加载到活动A中。发生了什么,如何保存设置并加载到活动B中 扩展而言,我有一个应用程序,可以加载到firebase身份验证中,然后在firebase数据库上运行。按下概览按钮时,如何保存状态?我是否需要使用firebase身份验证保存任何内容,还是只保存访问和管理firebase数据库所需的所有数据 我在上面看了几段视频,他们在谈论屏幕旋转和保存状态,但几乎没有关于overview按钮的信息 谢谢,Java 概述按钮开关活动,java,android,firebase,firebase-authentication,ondestroy,Java,Android,Firebase,Firebase Authentication,Ondestroy,我有两个活动活动活动A和活动B。我的应用程序在活动A中启动,活动A上有一个按钮指向活动B。当我在活动B中时,我按概览按钮(方形按钮)并选择我的应用程序。当我的应用程序加载时,活动B将被销毁,并加载到活动A中。发生了什么,如何保存设置并加载到活动B中 扩展而言,我有一个应用程序,可以加载到firebase身份验证中,然后在firebase数据库上运行。按下概览按钮时,如何保存状态?我是否需要使用firebase身份验证保存任何内容,还是只保存访问和管理firebase数据库所需的所有数据 我在上面
Reinaldo如何将当前活动保存为共享首选项中的值,然后在活动a的onCreate方法中检查该值。您可以使用一个switch语句重定向到用户之前参与的任何活动 活动A如下所示:
public class A extends AppCompatActivity {
private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
currentActivity = sharedPreferences.getString(CURRENT_ACT, "A");
switch (currentActivity){
case "A":
break;
case "B":
Intent intent = new Intent(this, B.class);
startActivity(intent);
break;
}
}
public class B extends AppCompatActivity {
private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentActivity = "B";
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(CURRENT_ACT,currentActivity);
editor.commit();
}
}
B看起来像这样:
public class A extends AppCompatActivity {
private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
currentActivity = sharedPreferences.getString(CURRENT_ACT, "A");
switch (currentActivity){
case "A":
break;
case "B":
Intent intent = new Intent(this, B.class);
startActivity(intent);
break;
}
}
public class B extends AppCompatActivity {
private String currentActivity;
private final String CURRENT_ACT = "current activity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentActivity = "B";
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(CURRENT_ACT,currentActivity);
editor.commit();
}
}我需要保存什么?我担心在活动B有了它的onDestroy方法之后,活动A有了它的OnCreate方法。我保存了将在活动A中访问的数据引用。如果我现在在活动B中,这次我关闭应用程序。活动B通过ondestroy方法销毁并保存数据,因为应用程序正在关闭。现在我打开应用程序,它加载活动A,它调用oncreate方法,该方法使用保存的首选项返回活动B。这是不应该发生的。用我的意思的示例编辑好了,它工作了!谢谢我还有一个问题,我有一个运行片段1和片段2的活动A。如果我想恢复片段,我应该将共享首选项放在哪里?感谢再次创建您拥有的每个片段或活动时,将一个新值保存到共享首选项中,就像您对活动b所做的那样。例如,在片段1中保存C,在片段2中保存D。然后,向活动a中的switch语句添加更多事例,以重定向与活动bthanks相同的方式,这是有效的。如果我有活动A,片段1和2,片段1有一个回收器视图,我想保存它的位置,该怎么办?我该怎么做?如蒙惠顾,不胜感激。谢谢