美文网首页
SharedPreferences保存引导页面

SharedPreferences保存引导页面

作者: 小赵不在 | 来源:发表于2020-07-15 21:07 被阅读0次

一、复制工具类(直接整个类复制过去)

public class SharedPreferencesUtil {
    /**
     * 保存在手机里面的文件名
     */
    private static final String FILE_NAME = "share_date";


    /**
     * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
     * @param context
     * @param key
     * @param object
     */
    public static void setParam(Context context, String key, Object object) {

        String type = object.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();

        if ("String".equals(type)) {
            editor.putString(key, (String) object);
        } else if ("Integer".equals(type)) {
            editor.putInt(key, (Integer) object);
        } else if ("Boolean".equals(type)) {
            editor.putBoolean(key, (Boolean) object);
        } else if ("Float".equals(type)) {
            editor.putFloat(key, (Float) object);
        } else if ("Long".equals(type)) {
            editor.putLong(key, (Long) object);
        }

        editor.commit();
    }

    /**
     * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
     *
     * @param context
     * @param key
     * @param defaultObject
     * @return
     */
    public static Object getParam(Context context, String key, Object defaultObject) {
        String type = defaultObject.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);

        if ("String".equals(type)) {
            return sp.getString(key, (String) defaultObject);
        } else if ("Integer".equals(type)) {
            return sp.getInt(key, (Integer) defaultObject);
        } else if ("Boolean".equals(type)) {
            return sp.getBoolean(key, (Boolean) defaultObject);
        } else if ("Float".equals(type)) {
            return sp.getFloat(key, (Float) defaultObject);
        } else if ("Long".equals(type)) {
            return sp.getLong(key, (Long) defaultObject);
        }

        return null;
    }
}

二、在引导页里设置

 private void initView() {
        iv_splash = (ImageView) findViewById(R.id.iv_splash);
        boolean k = (boolean) SharedPreferencesUtil.getParam(this, "key", false);//设置第一次进入为false
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                    if(k==true){
                        //如果为ture就说明不是第一次进入,就直接跳到MainActivity页面
                        Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                        startActivity(intent);
                    }else {
                        //如果为false就跳到Vp页面
                        Intent intent = new Intent(SplashActivity.this, VpActivity.class);
                        startActivity(intent);
                    }

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

三、在Vp页面中的点击事件里设置

 @OnClick(R.id.btn_guild)
    public void onViewClicked() {
        //因为为false跳到了当前Vp页面,所以就变为了true
        SharedPreferencesUtil.setParam(this, "key", true);
        Intent intent = new Intent(VpActivity.this, MainActivity.class);
        startActivity(intent);
    }

相关文章

网友评论

      本文标题:SharedPreferences保存引导页面

      本文链接:https://www.haomeiwen.com/subject/wtzjhktx.html