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

  • 我尝试在启动时使用 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);
            }
    
4

2 回答 2

2

您应该在需要时LAUNCHER Activity调用startActivity()新的Activity加号 finish())。通过这种方式,新的将在“幕后”推出,然后再尝试夸大任何布局。onCreate()setContentView()Activity

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();
}
于 2012-06-26T13:26:10.530 回答
1

解决此问题的潜在解决方法的一种选择是采用稍微不同的方法:

您可以从一个空白的活动开始,而不是启动到设置,然后决定是否进入 Timetablleddisplay 活动,该活动只是决定启动哪个活动。

活动可能是这样的:

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();
    }
于 2012-06-26T13:17:40.717 回答