在用户打开设置活动之前使用getDefaultSharedPreferences

imgx64

我的Android应用程序中有一个“设置活动”设置中有默认值res/xml/preferences.xml我遇到的问题是,直到用户真正进入设置页面,才保存默认首选项,并且我无法检索存储在XML文件中的默认值。

代码:

res / xml / preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <EditTextPreference
        android:defaultValue="xml default value"
        android:title="foo"
        android:summary="bar"
        android:key="mykey" />

</PreferenceScreen>

SettingsActivity.java

package bh.gov.cio.gdt.app;

import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;

public class SettingsActivity extends PreferenceActivity {
    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new MyPreferenceFragment()).commit();
    }

    public static class MyPreferenceFragment extends PreferenceFragment {
        @Override
        public void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
        }
    }
}

在另一个活动中:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String myvalue = settings.getString("mykey", "code default value")
Log.d(LOG_TAG, myvalue);

首次安装该应用程序时,对的调用settings.getString返回"code default value"但是,一旦用户至少打开一次设置活动,它将返回xml default value

我想避免在第一次运行该程序时强迫用户进入设置页面。我还想避免在XML文件和代码中两次对默认值进行编码。

Madhur Ahuja

我相信您需要参加活动 OnCreate()

PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从用户通知中打开设置URL?

来自分类Dev

无法打开设置

来自分类Dev

Xubuntu从终端打开设置?

来自分类Dev

从应用程序打开设置(例如使用Twitter打开Wi-Fi)-使用iOS 7.1

来自分类Dev

如何要求用户打开设备的GPS?

来自分类Dev

打开设置iOS 8 URL

来自分类Dev

URL方案“打开设置” ios

来自分类Dev

无法使用Windows 10中的内置管理员帐户打开设置

来自分类Dev

仅在用户使用Laravel处于活动状态时登录

来自分类Dev

使用CreateFile打开设备名称

来自分类Dev

在Unity iOS上打开设置应用程序

来自分类Dev

打开设置菜单用Java单击时

来自分类Dev

我的会话在尝试打开设置后结束

来自分类Dev

在用户存在之前,在设计注册中为nested_attribute设置user_id

来自分类Dev

在用户界面中获取活动窗口

来自分类Dev

在用户界面中获取活动窗口

来自分类Dev

在用户取消任务之前让任务完成

来自分类Dev

在用户信息之前插入值

来自分类Dev

在用户输入之前打印promt

来自分类Dev

在用户信息之前插入值

来自分类Dev

Xamarin如何使用先前的用户输入打开活动

来自分类Dev

在用户界面中打开默认标签

来自分类Dev

如何为任务设置每日本地通知,但在用户之前完成任务时不显示

来自分类Dev

如何从手持设备发送通知以穿戴打开设备上的活动

来自分类Dev

在用户控件内设置Treeview的ItemTemplateSelector

来自分类Dev

在用户登录后设置会话超时

来自分类Dev

在用户窗口屏幕末尾设置Div

来自分类Dev

使用moment.js在用户时区中将date()设置为午夜

来自分类Dev

angular-translate-在用户语言设置中使用definePreferredLanguage吗?

Related 相关文章

热门标签

归档