我使用默认共享首选项在其中保存一些数据。 我创建了一个类来处理所有这些:
public class PreferencesHandler {
private Context mContext;
public PreferencesHandler (Context context) {
this.mContext = context;
}
public void setBoolean(String name, boolean value) {
PreferenceManager.getDefaultSharedPreferences(mContext).edit()
.putBoolean(name, value).commit();
}
public void setInt(String name, int value) {
PreferenceManager.getDefaultSharedPreferences(mContext).edit()
.putInt(name, value).commit();
}
public boolean getBoolean(String name, boolean defaultValue) {
return PreferenceManager.getDefaultSharedPreferences(mContext)
.getBoolean(name, defaultValue);
}
public int getInt(String name, int defaultValue) {
return PreferenceManager.getDefaultSharedPreferences(mContext).getInt(
name, defaultValue);
}
}
您如何看待我创建了一个Handler类以便于访问。
我还有一个方法类,其中存储了我的所有方法。
在那个类中,我有一个使用这个处理程序类的方法:
public class Methods {
private Context mContext;
public Methods(Context context) {
this.mContext = context;
}
public void process (PreferencesHandler pref, String prefName, int default) {
int mInt= pref.getInt(prefName, default);
//The rest doesn't matters
}
}
我在我的活动类中调用此方法。
使用调试器我发现错误在Handler中,当它执行返回行时,它会打开PreferenceManager.class并显示“Source not found”文本。
它说JAR文件android.jar没有源附件。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
问题可能是您用来调用PreferencesHandler
的构造函数的Activity被销毁,然后您尝试在该活动的新实例中使用该PreferencesHandler
。
如果这是问题,那么两个构造函数中的这个更改应该修复:
mContext = context.getApplicationContext();
关于PreferenceManager.class的源代码:使用Android SDK管理器安装Android源并重启IDE。
在Eclipse中,可以在此处找到Android SDK Manager:Window -> Android SDK Manager