У меня есть приложение, которое отлично работает на моем телефоне (Huawei Mate 10 Pro), но у меня проблемы с планшетом (Samsung Galaxy Tab S2). Ранее я уже писал другой вопрос, касающийся вопросов, касающихся одного, а не другого, но этот вопрос совершенно отдельный.
Я использую экран настроек, чтобы сохранить некоторые настройки. Один из этих параметров (уникальный идентификатор) отображается только, но его можно скопировать, щелкнув по нему, в противном случае он обрабатывается только самим приложением. Все работает так же, как и на моем телефоне, но некоторые части кода, кажется, не работают на моем планшете (значение там пусто). Поскольку код идентичен, что-то должно обрабатываться по-разному между устройствами. Я не уверен, но может ли это быть контекстом?
Несколько следующих фрагментов кода.
Из моего 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();