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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!