我可以通过以下方式将共享偏好链接到活动:
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) finish();
SharedPreferences pref = getSharedPreferences("Widget"+appWidgetId, 0);
在我的首选项应用程序的配置对话框中,我可以通过以下方式访问显示的首选项:
getPreferenceScreen().getSharedPreferences();
这些首选项不会链接到窗口小部件,而是全局。如何将首选项活动中显示的首选项更改为窗口小部件对齐的首选项?
我尝试手动设置共享首选项文件:
PreferenceManager localPrefs = getPreferenceManager();
localPrefs.setSharedPreferencesName("GITC_Prefs");
当我尝试通过
访问共享的Preferences时,这会导致空指针异常 PreferenceActivity.getPreferenceScreen();
答案 0 :(得分:3)
要在两项活动中访问相同的SharedPreferences
,您需要为PreferencesActivity.getPreferenceManager().setSharedPreferencesName(name)
和Activity.getSharedPreferences(name, 0)
指定相同的名称。您目前在第一种情况下指定“Widget”+ appWidgetId ,在第二种情况下指定“GITC_Prefs”。