想用一个类专门用于存储用户信息,此类在调用getSharedPreferences时出错,而在将此类继承于Activity后就不再提示错误了。
想问一下
SharedPreferences settings = getSharedPreferences(USER_INFOS, 0)的函数调用;
必须写在继承自Activity的类中么?普通的类是怎么调用的呢?高手们?有人知道么........

解决方案 »

  1.   

    SharedPreferences产生的奇怪问题如果是想把Activity中的某些代码抽出去,单独建立一个类,不用显示继承任何类。然后构造方法以Activity为参数且只有这一个构造方法。在该类中所有Activity相关的调用都用传进来的Activity实例即可。当然,该Activity实例在构造方法中保存为该类的成员变量。
    http://www.eoeandroid.com/thread-27784-1-1.html
      

  2.   

    .....
    getSharedPreferences是依赖于上下文环境的,也就是context,所以不管你在哪个类中,一定要通过activity类的context才能调用。你可以这样,比如activity中实例化的你类,在new这个自定义类的时候,将activity的this当做参数传入,类型是context,然后在自定义类中记录下来,context.getSharedPreferences()就可以在你的类中这样调用了。PS:在activity的setContextView之后再实例化自己的类,这样activity.this才不是空。