gpt4 book ai didi

java - Android Studio 仅更改一次启动 Activity

转载 作者:行者123 更新时间:2023-11-29 20:52:06 27 4
gpt4 key购买 nike

我正在开发一个带有 Navigation Drawer 的 Android 应用程序,它以这种方式工作:用户打开该应用程序并弹出一个教程(一个带有寻呼机滑动 fragment 的 Activity ,称为 ScreenSlideActivity.java);当用户滑动完教程后,他按下“完成”按钮,导致 MainActivity 初始化(创建 drawerLayout、drawerToggle 等)

我需要做的是在应用首次启动后只打开一次教程 Activity 。

我已经在主 Activity 中尝试使用此代码:

if (savedInstanceState == null) {
SelectItem("tutorial");
}

确保 ScreenSlideActivity.java 立即启动。这个解决方案的问题是,当教程打开时,我无法再从那里访问 MainActivity.java,无论是从“向上”按钮还是从教程最后一页的“完成”按钮,可能是因为某种原因我不再将主要 Activity 作为父 Activity 。

然后我尝试了这个解决方案 change application's starting activity - Android修改 list xml 文件。添加:

        <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

到 ScreenSlideActivity。这个解决方案的问题是它改变了我的项目结构,使我的 ScreenSlideActivity.java 成为 Main 和 Launching Activity(因此从这里我无法再访问 MainActivity),而我只想显示一次。

我还能做什么?

最佳答案

您可以使用 SharedPreferences 来检查/设置是否是第一次打开应用

String preferences_name = "isFirstTime";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

...

firstTime();
}
...

public void firstTime(){

SharedPreferences sharedTime = getSharedPreferences(preferences_name,0);
if (sharedTime.getBoolean("firstTime",true))
{

//Your tutorial code

sharedTime.edit().putBoolean("firstTime",false).apply();
}
else
{
//When not using tutorial code

}

}

这里有类似的问题:https://stackoverflow.com/a/13237848/4555911

关于java - Android Studio 仅更改一次启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com