如何为多个小部件实例使用一个首选项活动?

时间:2010-12-31 11:41:49

标签: android-widget android-preferences

我正在开发一个Android主屏幕应用程序小部件。

我正在尝试向窗口小部件添加首选项。我可以放多个小部件。但我想使用动态创建的共享首选项配置首选项。

如何从资源文件中加载首选项,该资源文件从共享首选项中获取值并更新它?

任何建议?

2 个答案:

答案 0 :(得分:3)

问题的关键是以某种方式使用PreferenceActivity保存的设置作为参考并创建您自己的设置。以下是我曾经使用单个PreferenceActivity为多个app小部件实例设置多个设置。

private void onExitPreferenceActivity(Context context, int appWidgetId) {
    // Load the user selected settings saved by PreferenceActivity
    final String SETTING_PREFIX = "COLOR";
    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    final String colorSetting = prefs.getString(SETTING_PREFIX, "");
    // Save the setting of the current widget with widget ID as the postfix
    final SharedPreferences.Editor prefEditor = prefs.edit();
    prefEditor.putString(SETTING_PREFIX + String.valueOf(appWidgetId), colorSetting);
    prefEditor.commit();
}

private void onLoadingWidgetSetting(Context context, int appWidgetId) {
    // Load the setting of a particular widget given a widget ID
    final String SETTING_PREFIX = "COLOR";
    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    final String colorSetting = prefs.getString(SETTING_PREFIX + String.valueOf(appWidgetId), "");
    // Use the loaded setting
    // ....
}

答案 1 :(得分:0)

也许尝试在filesys上的某个地方编写自己的偏好系统。 只是建议