【发布时间】:2012-01-23 17:44:13
【问题描述】:
我正在开发一个 android 主屏幕应用小部件。
我正在尝试向小部件添加首选项。我可以放置多个小部件。但我想使用动态创建的共享首选项配置首选项。
我如何从资源文件中加载首选项,该文件从 sharedpreference 中获取值并更新它?
有什么建议吗?
【问题讨论】:
标签: android-widget android-preferences
我正在开发一个 android 主屏幕应用小部件。
我正在尝试向小部件添加首选项。我可以放置多个小部件。但我想使用动态创建的共享首选项配置首选项。
我如何从资源文件中加载首选项,该文件从 sharedpreference 中获取值并更新它?
有什么建议吗?
【问题讨论】:
标签: android-widget android-preferences
问题的关键在于以某种方式使用 PreferenceActivity 保存的设置作为参考并创建自己的设置。下面是我用来实现对具有单个 PreferenceActivity 的应用小部件的多个实例进行多个设置的方法。
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
// ....
}
【讨论】:
也许尝试在 filesys 的某个地方编写您自己的偏好系统。 只是建议
【讨论】: