我的三星平板电脑的偏好问题,但不是我的手机,可能与上下文相关?

问题描述 投票:-1回答:1

我有一个应用程序在我的手机(华为Mate 10专业版)上工作正常,但我的平板电脑(三星Galaxy Tab S2)有问题。我以前发过一个关于一个问题而不是另一个问题的不同问题,但这个问题完全是分开的。

我使用首选项屏幕来保存一些设置。其中一个设置(唯一ID)仅显示,但可以通过单击进行复制,否则只能由应用程序本身处理。一切都在我的手机上工作,但代码的某些部分似乎无法在我的平板电脑上工作(那里的值是空的)。由于代码相同,因此必须在设备之间以不同方式处理。我不确定,但它可能是背景吗?

要遵循的几个代码片段。

从我的PrefFregment,适用于两个设备:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.app_settings);
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

    getPreferenceScreen().findPreference("UID").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            Context context = preference.getContext();
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
            String uid = prefs.getString("UID", "");
            uid = uid.trim();
            ClipboardManager clipboardManager = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
            ClipData clip = ClipData.newPlainText("UID",uid);
            clipboardManager.setPrimaryClip(clip);
            Toast.makeText(context,R.string.UIDtoast, Toast.LENGTH_LONG).show();
            return true;
        }
    });
}

我的PrefFragment的另一个片段可以在我的手机上使用但不适用于平板电脑:

private void updatePreference(Preference preference) {
        preference.setSummary(PreferenceManager.getDefaultSharedPreferences(preference.getContext()).getString(preference.getKey(),""));          
    }

最后一个片段,它来自我的主要活动。它适用于我的手机,但平板电脑上的uid是空的:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String uid = prefs.getString("UID", "");
uid = uid.trim();
android sharedpreferences android-context samsung-mobile
1个回答
0
投票

我解决了这个问题。关于潜在的问题我一直都错了。上下文工作得很好。问题在于我在较早的时候已将有问题的偏好从editTextPreference更改为仅偏好,因此其文本无法进行编辑。我不得不通过编辑器输入uid值。一切顺利。其中一些有用的原因是之前的值仍然存在于更改之前的首选项中。当我重新安装整个应用程序时突然显示所有值都是空的,我注意到了这一点。我仍然不知道为什么设备之间存在差异。但现在问题本身至少得到了解决。

© www.soinside.com 2019 - 2024. All rights reserved.