Android将小部件的SharedPreferences加载到“首选项活动”中

时间:2012-04-27 13:26:48

标签: android sharedpreferences

我可以通过以下方式将共享偏好链接到活动:

 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();

1 个答案:

答案 0 :(得分:3)

要在两项活动中访问相同的SharedPreferences,您需要为PreferencesActivity.getPreferenceManager().setSharedPreferencesName(name)Activity.getSharedPreferences(name, 0)指定相同的名称。您目前在第一种情况下指定“Widget”+ appWidgetId ,在第二种情况下指定“GITC_Prefs”