Java 共享首选项重新调整为null
我正在尝试简单地检查以加载正确的开始活动,我会:Java 共享首选项重新调整为null,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在尝试简单地检查以加载正确的开始活动,我会: public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; public SharedPreferences sharedPreferences = MyApplication.getAppContext().getSharedPreferences("
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
public SharedPreferences sharedPreferences = MyApplication.getAppContext().getSharedPreferences("sharedPrefs", MODE_PRIVATE);
public SharedPreferences.Editor editor = sharedPreferences.edit();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean onBoardingComplete = sharedPreferences.getBoolean("firstRun", true);
if(onBoardingComplete){
Intent navIntent = new Intent(this, NavigationStartActivity.class);
startActivity(navIntent);
}else{
Intent onBoardIntent = new Intent(this, OnBoardingActivity.class);
startActivity(onBoardIntent);
}
}
我在第5行初始化SharedReferences时得到一个空指针异常。我的sharedPrefs文件存在于存储数据/data/com.myap/shared\u prefs/sharedPrefs.xml中
我不知道这为什么会返回null。将它移到onCreate内部,因为外部上下文为null
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPreferences = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
boolean onBoardingComplete = sharedPreferences.getBoolean("firstRun", true);
if (onBoardingComplete) {
Intent navIntent = new Intent(this, NavigationStartActivity.class);
startActivity(navIntent);
} else {
Intent onBoardIntent = new Intent(this, OnBoardingActivity.class);
startActivity(onBoardIntent);
}
}
}
并将
SharedReferences.edit()
移动到else分支,前提是它仅将“firstRun”
设置为true。仅从SharedReferences
检索值时,不需要编辑器。