我已经盯着这段代码看了一段时间了,我看不出哪里出错了。我正在尝试实现仅在首次运行的应用程序上运行的覆盖活动。
我得到一个空指针异常。
任何帮助将不胜感激。
我的 onCreate():
公共类 MainActivity 扩展 Activity { SharedPreferences 首选项;查看顶层布局;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
topLevelLayout= findViewById(R.layout.activity_instructions);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
if (isFirstTime()) {
topLevelLayout.setVisibility(View.INVISIBLE);
}
而 isFirstTime 方法:
private boolean isFirstTime()
{
boolean ranBefore = preferences.getBoolean("RanBefore", false); // The program crashes here
if (!ranBefore) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
topLevelLayout.setVisibility(View.VISIBLE);
topLevelLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
topLevelLayout.setVisibility(View.INVISIBLE);
return false;
}
});
}
return ranBefore;
}