默认共享首选项:找不到源

时间:2014-05-25 11:00:27

标签: android

我使用默认共享首选项在其中保存一些数据。 我创建了一个类来处理所有这些:

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没有源附件。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题可能是您用来调用PreferencesHandler的构造函数的Activity被销毁,然后您尝试在该活动的新实例中使用该PreferencesHandler

如果这是问题,那么两个构造函数中的这个更改应该修复:

mContext = context.getApplicationContext();

关于PreferenceManager.class的源代码:使用Android SDK管理器安装Android源并重启IDE。

在Eclipse中,可以在此处找到Android SDK Manager:Window -> Android SDK Manager