Java 创建对象时出现NullPointerException
我有这样一个类,它的构造函数定义如下。 问题是当我尝试创建它的对象时,我得到了Java 创建对象时出现NullPointerException,java,android,Java,Android,我有这样一个类,它的构造函数定义如下。 问题是当我尝试创建它的对象时,我得到了java.lang.NullPointerException public class someClass extends Activity { public static String sharedPreferencesFileName = "myShared"; public SharedPreferences sharedPreferences = null; public someCl
java.lang.NullPointerException
public class someClass extends Activity {
public static String sharedPreferencesFileName = "myShared";
public SharedPreferences sharedPreferences = null;
public someClass() {
this.sharedPreferences = getSharedPreferences(sharedPreferencesFileName,0);
}
我是从另一个班级打电话来的
someClass someObj = new someClass();
删除您的构造函数并使用
onCreate()
,因为在执行android活动时,构造函数不是典型的用法
public class someClass extends Activity {
public static String sharedPreferencesFileName = "myShared";
public SharedPreferences sharedPreferences = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.sharedPreferences = getSharedPreferences(sharedPreferencesFileName,0);
}
someClass
是普通的java类吗
然后无需扩展活动,使用类构造函数在someClass
表单活动中获取上下文,以访问getSharedReferences
作为:
public someClass(Context mContext){
this.sharedPreferences = mContext.getSharedPreferences(s
haredPreferencesFileName,0);
}
我看到您的类扩展了
活动
。它有自己的生命周期。不要使用默认构造函数(或任何构造函数)初始化变量。使用onCreate
方法执行此操作。为什么您的对象会扩展活动?当我创建此类的对象时是否会调用onCreate()
。@Maven您根本不应该创建活动的对象,当您使用intent@Maven,当通过startActivity(intent)使用启动someClass
活动时,将调用该类。实际上,该类不是活动。如果我不从活动中扩展它,我将得到无法解决GetSharedReferences
错误。这是我从那里扩展它的唯一原因。什么是public类someClass扩展活动
呢?如果我不从活动中扩展它,我得到无法解决GetSharedReferences
错误。这是我从那里扩展它的唯一原因。