Android 如果满足某些条件,则在启动时启动备用活动
我正在创建一个需要先设置一些设置的应用程序 在开始显示活动之前。 我想让应用程序检查是否存在首选项文件(包含这些设置),如果确实存在,请移动到 特定活动或保留在主活动中(作为设置 活动是我的主要活动)Android 如果满足某些条件,则在启动时启动备用活动,android,android-activity,oncreate,Android,Android Activity,Oncreate,我正在创建一个需要先设置一些设置的应用程序 在开始显示活动之前。 我想让应用程序检查是否存在首选项文件(包含这些设置),如果确实存在,请移动到 特定活动或保留在主活动中(作为设置 活动是我的主要活动) 我试图在启动时使用startactivty(),但它显示了设置 在转到显示屏之前,先查看菜单几秒钟 活动 我该怎么做 我尝试了以下代码: super.onCreate(savedInstanceState); setContentView(R.layout.main);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences prefsfile = getSharedPreferences("myfile",0);
if( prefsfile!=null & Timetablledisplay.flag==0){
Intent i=new Intent(ProjectBunkitActivity.this,Timetablledisplay.class);
startActivity(i);
}
解决此问题的一个潜在解决方案是采用稍微不同的方法: 您可以从一个空白活动开始,该活动只决定启动哪个活动,而不是启动到设置中,然后决定是否转到TimetabledDisplay活动 活动可以是这样的:
super.onCreate(savedInstanceState);
SharedPreferences prefsfile = getSharedPreferences("myfile",0);
if( prefsfile!=null && Timetablledisplay.flag==0){
Intent i=new Intent(CURRENT.this,Timetablledisplay.class);
startActivity(i);
finish();
}
else
{
Intent i=new Intent(CURRENT.this,ProjectBunkitActivity.class);
startActivity(i);
finish();
}
此问题的潜在解决方案的一个选项是采用稍微不同的方法: 您可以从一个空白活动开始,该活动只决定启动哪个活动,而不是启动到设置中,然后决定是否转到TimetabledDisplay活动 活动可以是这样的:
super.onCreate(savedInstanceState);
SharedPreferences prefsfile = getSharedPreferences("myfile",0);
if( prefsfile!=null && Timetablledisplay.flag==0){
Intent i=new Intent(CURRENT.this,Timetablledisplay.class);
startActivity(i);
finish();
}
else
{
Intent i=new Intent(CURRENT.this,ProjectBunkitActivity.class);
startActivity(i);
finish();
}
在需要时调用
setContentView()
之前,您应该在onCreate()
中的新活动上调用startActivity()
(加上finish()
)的启动器活动调用startActivity()
。这样,新的活动
将在尝试扩大任何布局之前“幕后”启动
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences prefs = getSharedPreferences("myFile", 0);
if(prefs != null && ActivityOne.flag == 0) {
Intent i = new Intent(this, ActivityOne.class);
startActivity(i);
} else {
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
}
finish();
}
在需要时调用setContentView()
之前,您应该在onCreate()
中的新活动上调用startActivity()
(加上finish()
)的启动器活动调用startActivity()
。这样,新的活动
将在尝试扩大任何布局之前“幕后”启动
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences prefs = getSharedPreferences("myFile", 0);
if(prefs != null && ActivityOne.flag == 0) {
Intent i = new Intent(this, ActivityOne.class);
startActivity(i);
} else {
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
}
finish();
}
发布你的代码。您之前尝试过什么?您是否尝试在调用startActivity(i)
后添加finish()
标记以关闭当前活动?代码工作正常,但我需要Timetabledisplay活动开始,而不显示设置activityPost代码。您之前尝试过什么?您是否尝试在调用startActivity(i)
后添加finish()
标记以关闭当前活动?代码工作正常,但我需要在不显示设置的情况下启动Timetabledisplay活动activity@iKiar,你为什么需要在这里调用setContentView
?谢谢你指出,我刚刚从上面复制了OPs代码,但忘了删除它。我很高兴。别忘了接受对你有用的答案@iKiar,你为什么需要在这里调用setContentView
?谢谢你指出,我刚刚从上面复制了OPs代码,但忘了删除它。我很高兴。别忘了接受对你有用的答案!