当前位置: 首页 > 知识库问答 >
问题:

如何使用Android首选项创建一次性欢迎屏幕?

越骏俊
2023-03-14

我想创建一个屏幕,只显示一次后,应用程序启动。之后,它将只显示主屏幕。我实现这一点的方式只是检查首选项,并根据标志设置当前布局。以这种方式实施它有什么后退吗?有更好的办法吗?

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Here is the main layout
        setContentView(R.layout.main);      

        mPrefs = PreferenceManager.getDefaultSharedPreferences(this);

        // second argument is the default to use if the preference can't be found
        Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false);

        if (!welcomeScreenShown) {
            //Here I set the one-time layout
            setContentView(R.layout.popup_message);             
            SharedPreferences.Editor editor = mPrefs.edit();
            editor.putBoolean(welcomeScreenShownPref, true);
            editor.commit(); // Very important to save the preference
        }
    }

共有1个答案

柯阳曦
2023-03-14

尝试使用应用程序版本代码。下面是我使用过的示例代码

    SharedPreferences sharedPreferences = getSharedPreferences("version", 0);
    int savedVersionCode = sharedPreferences.getInt("VersionCode", 0);

    int appVershionCode = 0;

    try {
        appVershionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;

    } catch (NameNotFoundException nnfe) {
        Log.w(TAG, "$ Exception caz of appVershionCode : " + nnfe);
    }   

    if(savedVersionCode == appVershionCode){
        Log.d(TAG, "$$ savedVersionCode == appVershionCode");
    }else{
        Log.d(TAG, "$$ savedVersionCode != appVershionCode");

        SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
        sharedPreferencesEditor.putInt("VersionCode", appVershionCode);
        sharedPreferencesEditor.commit();

        Builder alertDialogBuilder = new Builder(this);
        alertDialogBuilder.setTitle("Version");
        alertDialogBuilder.setMessage("This is one time show dialog box ");

        alertDialogBuilder.setNeutralButton("Close", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d(TAG, "$$ onClick");

            }
        });

        alertDialogBuilder.show();
    }
 类似资料:
  • 本文向大家介绍Android实现闪屏欢迎界面,包括了Android实现闪屏欢迎界面的使用技巧和注意事项,需要的朋友参考一下 闪屏:在打开App时,展示,持续数秒后,自动关闭,进入另外的一个界面,SplashActivity跳转到MainActivity Android中有三种实现方法 xml代码: (1)利用Handler对象的postDelayed方法可以实现,传递一个Runnable对象和一个

  • CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构。通过减少代码量,CodeIgniter 让你更加专注 于你的创造性工作。 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架; 你需要出色的性能; 你需要广泛

  • Faygo 使用全新架构,是最合适开发API接口的Go Web框架。用户只需定义一个struct Handler,就能自动绑定、验证请求参数并生成在线API文档。 当前版本号 v1.0 框架特性 一个 struct Handler 搞定多件事: 定义 Handler/Middleware 绑定与验证请求参数 生成 Swagger2.0 API 在线文档 数据库 ORM 映射 Handler与Mid

  • 欢迎来使用Git, 它是一个快速的分布式版本控制系统。 这本书的目的是为那些初学者尽快熟悉Git,提供了一个良好的起点。 此书将以介绍Git如何存储数据做为开始,让你了解它和其它版本控制系统有什么不同的背景。这大约要花你20分钟的时间。 接下来,我们会讲一些Git的基本用法,那些你将在90%的时间都在使用的命令。这些东东能给一个不错的使用的基础,也许这些命令就是你将使用的全部命令。这一节大约会花你

  • 1.2 项目架构 一个由 faygo 创建的项目基本包含如下几部分: 新建框架实例 app := faygo.New("myapp", "0.1") 编写接口操作 type Index struct { Id int `param:"<in:path> <required> <desc:ID> <range: 0:10>"` Title st

  • 我开始认为我的问题是我的偏好没有正确完成,这就是为什么我无法访问tem。以下是我的偏好: Java: 这是我对设置菜单的调用: 因此,任何帮助将不胜感激!我正在尝试访问这些首选项,但无法访问。它似乎很好地拯救了他们。我能够测试和运行代码,更改pref并保存它们的状态。但是,当我尝试访问它们时,我不能...以下是我用来尝试访问它们的代码: 编辑:我已将其更改为如下调用,无论设置如何,它仍然是“你好,