gpt4 book ai didi

android - PreferenceActivity 在 Android 2.1 上工作正常,但在 4.1 上不工作(填充)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:34 27 4
gpt4 key购买 nike

我正在写一个应用程序。它需要在旧的 android 操作系统上运行才能有用。我使用 PreferencesActivity 编写了首选项屏幕,该 PreferencesActivity 填充了包含 PreferenceScreen 的 options.xml 文件。它没有首选项子菜单(因此 PreferenceFragment 没有提供任何实际好处)。

在 Android 2.1(2.2 和 2.3,尚未在 ICS 上测试过)中,屏幕显示正确,就像在横向中一样: Eclair

但是在 Jellybean 上,它看起来像这样: Jellybean

看起来很糟糕。我没有定义任何布局,只是标准的 addPreferencesFromResource()。有谁知道这可能是什么原因?或者解决方案?

我的 onCreate 看起来像这样:

    protected void onCreate(Bundle savedInstanceState) { //
super.onCreate(savedInstanceState);
Log.i(TAG, "Options Activity Loaded.");
setTitle(getString(R.string.optionsTitle));
addPreferencesFromResource(R.xml.options);
setupListeners();
}

其他一切都只是创建 Preference 对象并分配方法以在它们被点击时执行操作。我不想同时为 PreferenceFragment 和 PreferenceActivity 编写代码。我不明白谷歌如何期望我们在最大版本市场份额没有该 API 的情况下使用 Fragment API,并且他们不会将其添加到兼容性库中。

最佳答案

您的应用程序可以同时支持 SharedPreferences 的旧功能和新功能。您可以为旧首选项提供一个类,为新首选项提供一个类。它没有更多的代码。您可以像这样使您的应用向后兼容:

Class spc = Build.VERSION_SDK_INT < Build.VERSION_CODES.HONEYCOMB ? 
oldPreferenceActivity.class : newFragmentPreferenceActivity.class;

Intent i = new Intent (this, spc);
startActivityForResult (i, SHOW_PREFERENCES);

关于android - PreferenceActivity 在 Android 2.1 上工作正常,但在 4.1 上不工作(填充),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com