2 cc222014 cc222014 于 2016.03.25 22:48 提问

实现第一次使用APP时显示引导页面,以后不再显示,代码如下,但是不行
    final boolean isFirst;
    SharedPreferences preferences = getSharedPreferences("first_pref",MODE_MULTI_PROCESS);
    isFirst = preferences.getBoolean("isFirstIn", true);
    Log.d("StartActivity","is"+isFirst);

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.start_layout);

    new Handler().postDelayed(new Runnable() {

        public void run() {
         if (isFirst) {
          // start
          intent = new Intent(StartActivity.this, GuideActivity.class);
         } else {
          // start
          intent = new Intent(StartActivity.this, MainActivity.class);
         }
         StartActivity.this.startActivity(intent);
         StartActivity.this.finish();
        }
       },DISPLAY_TIME);
        后面在GuideActivity中修改了文件中isFirst的值为false,但实验发现结果不行,
        final boolean isFirst;中声明为final是应为在内部类中不能用变量。
        求各位大神指点,谢谢你们

7个回答

caozhy
caozhy   Ds   Rxr 2016.03.25 23:44
已采纳
qq_26971803
qq_26971803   2016.03.26 07:52

把读取sharepreference的操作放在run里面试一下

crazy1235
crazy1235   Ds   Rxr 2016.03.26 13:03

你需要持久化存储一个变量。运行的时候先去读取这个变量判断,进而决定是否显示。

lxk_1993
lxk_1993   Rxr 2016.03.28 10:43

if (isFirst) {
// start
intent = new Intent(StartActivity.this, GuideActivity.class);
//在这里 把isFirstIn设为false 保存到SharedPreferences里面
}

cyxevil
cyxevil   2016.03.28 11:18

smile_ko 正解

lly4321lly
lly4321lly   2016.03.28 15:17

改成false之后你要存到sharepreference里面啊0。0 而且没必要final 啊

u014425641
u014425641   2016.03.25 23:44

final boolean isFirst[1];
isFirst[0]=xxxx;
用数组就好了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android 用 SharedPreferences实现app首次使用显示引导界面,之后使用将不再出现
功能如标题所示,话不多说,代码简单,注释清晰,一目了然: package com.kk.main;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;/** * 启动页,每次进入都要启动它 */public class WelwelActivity ex
Android程序第一次安装进入时出现引导界面,以后进入都不再出现引导界面
WelcomeActivity //欢迎页面 IntroActivity //引导界面 MainActivity //主界面 在onCreate方法中写入 SharedPreferences sp=getSharedPreferences("elts", Context.MODE_PRIVATE); int count=sp.getInt("count", 0);
android引导页首次展示,再次进入不再显示的实现
我采用的是利用packagemanager获取的versioncode,他的设置在上图的位置,(具体是structure中app的flavor选项)所以每次版本迭代的时候将versioncode的版本增加1,也可以增加2,3等只要是整数并且比上一个数字大就可以,这样在用户软件进行升级更新后,引导页的内容都会展示,否则不改变versioncode的值,在版本更新覆盖掉旧版本时引导页也会默认不显示...
APP首次启动引导界面和启动界面设置——iOS开发
APP首次启动引导界面和启动界面设置——iOS开发。及NSUserDefaults的使用
APP第一次使用会显示的页面,之后再次打开应用不会再显示
很简单的小功能,需求里有一个要求,就是当用户首次打开应用会设置用户资料,之后,当再次使用此应用,就不会再显示此设置信息页面,而是别的页面甚至主页面。 思路,要用到SharedPreferences。来存储小东西。 private SharedPreferences pref; protected void onCreate(Bundle savedInstanceState) { su
android 第一次登录引导界面的显示 第二次登录引导界面的消失
这篇博客主要介绍在第一次进入app如何进入引导界面,然后重复登录进入主机面
android实现应用程序只有在第一次启动时显示引导界面 ,以后就不在显示了
程序安装后第一次启动: 启动页-->功能介绍页-->系统主页 以后启动: 启动页-->系统主页     所以在启动页中判断一下就可以了   可以弄一个文件保存一个状态,推荐用SharedPreferences。 1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是第一次则执行系统主页。 判断系统是第一次运行的代码实现如下: 在Act
Android实现第一次进入App时的引导学习界面
转载:http://blog.csdn.net/u011993368/article/details/43764737因为我们所熟知的Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种
android实现App第一次进入时的引导学习界面
市面上不管是android软件还是Ios软件,当你下载第一次使用的时候,往往很多界面会有那种半透明的高亮的知道界面,教你们如何的操作。因为我们所熟知的Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者
app第一次启动显示引导页
一般的是在sp文件中以一个标志来区分,但是这样无法做到每个新版本都会是第一次启动,因为更新app是不会删除sp文件的。 那么区分每个版本就可以通过versioncode来区分,配合sp文件进行查分对比,但是这时候又有一个问题:如何新版本没有新特性呢? 只是单纯的增加稳定性。这种情况下是没有必要展示启动页的。 那么问题来了,如何做到这一点呢? 我的想法是弄一个数据库(刚启动的app用这玩意太