public class User extends Activity implements UserI {
private SharedPreferences sharedPref;
private Context mcontext;
private boolean isNotificationsOn;
public User(Context context) {
mcontext = context;
Load();
}
public void Load () {
//app crashes
sharedPref = PreferenceManager.getDefaultSharedPreferences(mcontext);
isNotificationsOn = sharedPref.getBoolean("switch_recieveNotifications", false);
}
}
public class SettingsActivity extends
AppCompatPreferenceActivity {
...
public static class GeneralPreferenceFragment extends
PreferenceFragment {
...
}
}
大家好,
我是一名新的android应用程序开发人员,非常感谢您的帮助。
我的应用程序每次调用都崩溃: PreferenceManager.getDefaultSharedPreferences(上下文)。
阅读一些相关的答案后,我尝试了不同的策略,例如:
全部产生相同的结果-崩溃的应用
我迷路了:/很想获得您的见识
答案 0 :(得分:1)
活动是上下文,它表示视图的控制器。 因此,您的加载应该在onCreate或onResume方法中进行。
然后,您的上下文应为关键字“ this”。您还应该考虑将其命名为UserActivity,这样很明显您在做什么。最后,在Java或Kotlin中,我们从小写的方法名称开始。
@Override
public void onCreate(Bundle savedInstanceState) {
load()
}
private void load(){
sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
isNotificationsOn = sharedPref.getBoolean("switch_recieveNotifications", false);
}
这将使您再次运行。然后确保您正确地开始活动,而不是尝试构建自己的构造函数。只需使用
startActivity(this, new Intent(this, UserActivity));