Android设置应用程序的对话框集

Android设置应用程序的对话框集,android,dialog,Android,Dialog,当用户第一次加载我的Android应用程序时,我想经历几个设置应用程序的阶段 基本上我只想要一组从一个步骤到下一个步骤的对话,但我不知道最好的方法 我为我的应用程序实现了类似的解决方案。我在首选项中放置了一个面包屑,表示这是应用程序第一次运行。我有一个向用户显示的“主页”活动。在onCreate中,我通过查看此首选项值来检查用户以前是否运行过应用程序 @Override protected void onCreate(Bundle savedInstanceState) { if(thi

当用户第一次加载我的Android应用程序时,我想经历几个设置应用程序的阶段


基本上我只想要一组从一个步骤到下一个步骤的对话,但我不知道最好的方法

我为我的应用程序实现了类似的解决方案。我在首选项中放置了一个面包屑,表示这是应用程序第一次运行。我有一个向用户显示的“主页”活动。在onCreate中,我通过查看此首选项值来检查用户以前是否运行过应用程序

@Override
protected void onCreate(Bundle savedInstanceState)
{
    if(this.application.getPreferences().isFirstTimeRun())
    {
        startActivity(new Intent(this, WizardStepOneActivity.class));
    }
    else
    {
        startActivity(new Intent(this, MainActivity.class));
    }
}
如果用户尚未运行该应用程序,我将启动一系列活动(即类似向导的活动)以设置初始设置。通过使用onActivityResult,我可以浏览设置步骤

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    switch(requestCode)
    {
    case WIZARD_STEP_1:
        Intent i = new Intent(this, WizardStepTwoActivity.class);
        startActivityForResult(i, WIZARD_STEP_2);
        break;
    case WIZARD_STEP_2:
        Intent i = new Intent(this, WizardStepThreeActivity.class);
        startActivityForResult(i, WIZARD_STEP_3);
        break;
    case WIZARD_STEP_3:
        //Set the breadcrumb to indicate that the user has set their preferences
        this.application.setFirstTimeRunCompleted();

        //Start main activity
        startActivity(new Intent(this, MainActivity.class));
        break;

    }
}

我不确定这是否是最好的方法,但到目前为止似乎有效。显然,错误处理应该到位,以确保他们已经设置了首选项,这样就可以设置面包屑了

希望这有帮助,
Kevin

检查您的SharedReferences中的设置。完成初始化后,设置该变量。很高兴知道!再次查看代码的一个想法是,在每个步骤中创建新的意图可能会阻止在向导步骤之间传递信息。我想知道您是否可以重复使用“data”参数来启动每个步骤,从而在步骤之间传递相同的意图(因此也是相同的包)。不管怎么说…很高兴你成功了!