【问题标题】:how to use one preference activity for multiple instances of the widgets?如何为小部件的多个实例使用一个偏好活动?
【发布时间】:2012-01-23 17:44:13
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

    标签: android-widget android-preferences


    【解决方案1】:

    问题的关键在于以某种方式使用 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
        // ....
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 2018-08-06
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多