0

我可以通过这种方式将共享偏好与活动联系起来:

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

当我尝试通过以下方式访问共享首选项时,这会导致空指针异常

 PreferenceActivity.getPreferenceScreen();
4

1 回答 1

3

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

于 2012-04-27T14:41:45.793 回答