java – Android从preferences.xml获取密钥

前端之家收集整理的这篇文章主要介绍了java – Android从preferences.xml获取密钥前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个PreferencesActivity,显示带复选框的preferences.xml.

的preferences.xml:

BoxPreference android:key="Essen" 
                        android:title="Essen" 
                        android:selectable="true" 
                        android:enabled="true"
                        android:persistent="false">
    BoxPreference>
    BoxPreference android:key="Kleidung" 
                        android:title="Kleidung" 
                        android:selectable="true" 
                        android:enabled="true"
                        android:persistent="false">
    BoxPreference>

PreferencesActivity:

public class PreferencesViewController extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }
}

现在在不同的ListActivity中,我想从选中的复选框中显示所有键/标题.

我尝试访问首选项

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

要么

SharedPreferences prefs = getSharedPreferences("mypackage_preferences",0);

但两者都没有真正奏效.

当我调用prefs.getAll().size()时,结果为0.

我可以使用getPreferenceScreen().getPreference(i)来访问Keys / Title.但是它不能从另一个Activity中工作,只能从PreferenceActivity中工作.

有没有人有解决方案如何让这项工作?

最佳答案
您不需要PreferenceActivity来完成此任务.

要访问PreferenceActivity中使用的首选项,您应该使用

SharedPreferences prefs = 
    PreferenceManager.getDefaultSharedPreferences(getBaseContext());

如果您的数据列表来自服务器,那么您可以使用ListActivity / ExpandableListActivity /任何自定义活动来可视化它,但这样您就需要编写更改首选项的处理程序.

这样做的常见方法是:

private void saveStringPreference(final String key,final String value)
{
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString(key,value);
    editor.commit();
}

如果需要,您应该创建类似的包装器来处理int,boolean等值.

原文链接:https://www.f2er.com/android/430383.html

猜你在找的Android相关文章