我正在尝试使用Dialog中的首选项,并且遇到了一些困难。我的应用程序的其余部分只使用getPreferences()
对话框,似乎没有任何问题。但是,Dialog无法调用getPreferences()
,由于某种原因,我无法访问基本Activity。但是我已经找到了一个解决方案,from the SDK documentation,但我需要一个快速的答案才能得到它。
SDK声明“这只是通过传入此活动的类名作为首选项名称来调用底层getSharedPreferences(String, int)
方法。”如果我能得到活动的班级名称。我可以访问上下文,其中包括getApplicationInfo()
。这里有各种各样的名字。我的问题是,来自getApplicationInfo()
的名称是否与getPreferences()
作为类名传递给getSharedPreferences()
的值相同?
答案 0 :(得分:1)
我最终做的是全面使用它作为应用程序名称:
getBaseContext().getApplicationInfo().packageName
上下文几乎普遍可用,并且该名称应该与程序中的所有类保持一致。
答案 1 :(得分:0)
更好,现在这就是我使用它们的方式,就是使用它:
final SharedPreferences prefs = android.preference.PreferenceManager.getDefaultSharedPreferences(mContext);
这可以获得正确的偏好,而无需做任何复杂的事情。