Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果满足某些条件,则在启动时启动备用活动_Android_Android Activity_Oncreate - Fatal编程技术网

Android 如果满足某些条件,则在启动时启动备用活动

Android 如果满足某些条件,则在启动时启动备用活动,android,android-activity,oncreate,Android,Android Activity,Oncreate,我正在创建一个需要先设置一些设置的应用程序 在开始显示活动之前。 我想让应用程序检查是否存在首选项文件(包含这些设置),如果确实存在,请移动到 特定活动或保留在主活动中(作为设置 活动是我的主要活动) 我试图在启动时使用startactivty(),但它显示了设置 在转到显示屏之前,先查看菜单几秒钟 活动 我该怎么做 我尝试了以下代码: super.onCreate(savedInstanceState); setContentView(R.layout.main);

我正在创建一个需要先设置一些设置的应用程序 在开始显示活动之前。 我想让应用程序检查是否存在首选项文件(包含这些设置),如果确实存在,请移动到 特定活动或保留在主活动中(作为设置 活动是我的主要活动)

  • 我试图在启动时使用startactivty(),但它显示了设置 在转到显示屏之前,先查看菜单几秒钟 活动

  • 我该怎么做

    我尝试了以下代码:

        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代码,但忘了删除它。我很高兴。别忘了接受对你有用的答案!