有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图让我的简介滑块只出现一次,但得到了NullPointerException

所以我尝试在我的应用程序中使用this Intro Slider

一切都很好,直到我试图让它只出现在第一个开始

为此,我使用了共享引用

以下是我的活动:

public class MainIntroActivity extends com.heinrichreimersoftware.materialintro.app.IntroActivity {

    private PrefManager prefManager;

    @Override protected void onCreate(Bundle savedInstanceState) {

        prefManager = new PrefManager(this);
        if (!prefManager.isFirstTimeLaunch()) {
            launchHomeScreen();
            finish();
        }

        super.onCreate(savedInstanceState);

        addSlide(new SimpleSlide.Builder()
            .title(R.string.intro_title1)
            .description(R.string.intro_description1)
            .image(R.drawable.tired)
            .background(R.color.colorPrimaryLight)
            .backgroundDark(R.color.colorPrimaryDark)
            .build());
    }


    private void launchHomeScreen() {
        prefManager.setFirstTimeLaunch(false);
        startActivity(new Intent(MainIntroActivity.this, MainActivity.class));
        finish();
    }

}

这是我的PrefManager课程:

public class PrefManager {
    SharedPreferences pref;
    SharedPreferences.Editor editor;
    Context _context;

    // shared pref mode
    int PRIVATE_MODE = 0;

    // Shared preferences file name
    private static final String PREF_NAME = "MainIntroActivity";

    private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch";

    public PrefManager(Context context) {
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
    }

    public void setFirstTimeLaunch(boolean isFirstTime) {
        editor.putBoolean(IS_FIRST_TIME_LAUNCH, isFirstTime);
        editor.commit();
    }

    public boolean isFirstTimeLaunch() {
        return pref.getBoolean(IS_FIRST_TIME_LAUNCH, true);
    }
}

logcat:

Caused by: java.lang.NullPointerException
                      at com.heinrichreimersoftware.materialintro.app.IntroActivity.findViews(IntroActivity.java:282)
                      at com.heinrichreimersoftware.materialintro.app.IntroActivity.onCreate(IntroActivity.java:174)
                      at ege.ege.MainIntroActivity.onCreate(MainIntroActivity.java:21)

共 (1) 个答案

  1. # 1 楼答案

    prefManager = new PrefManager(this);之前移动super.onCreate(savedInstanceState);