【问题标题】:How can I show a preferences screen on older Android devices i.e. Gingerbread and Froyo?如何在较旧的 Android 设备(例如 Gingerbread 和 Froyo)上显示首选项屏幕?
【发布时间】:2012-11-27 15:14:12
【问题描述】:

我需要在我的应用程序中显示首选项屏幕。我已经设法实现了这一点,它适用于 Ice-Cream Sandwich 和更新的设备,但不适用于 Gingebread 和 Froyo 等旧设备。我使用 ActionBarSherlock 作为兼容性库来支持旧设备。

这是包含首选项屏幕的Activity 的代码:

public class Settings extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new Preferences())
                .commit();
    }

}

这是我的活动中调用首选项屏幕的示例代码:

public class Trend extends SherlockActivity {

    @Override
    public boolean onOptionsItemSelected(MenuItem itmMenuitem) {
        if (itmMenuitem.getItemId() == R.id.search) {
            startActivity(new Intent(getBaseContext(), Settings.class));
            return true;
        }
    }

}

当用户尝试在旧设备上打开首选项屏幕时,我收到一条异常消息:

java.lang.NoSuchMethodError: com.mridang.stupidapp.Settings.getFragmentManager
at com.mridang.stupidapp.Settings.onCreate(Settings.java:15)

我应该如何修改我的首选项屏幕以使用旧设备(即 API 8)?谢谢。

【问题讨论】:

标签: java android android-activity actionbarsherlock android-preferences


【解决方案1】:

ActionBarSherlock 和 Android Support Library 都不提供对 Preference Fragments 的支持。

您需要按照Settings Documentation 中的说明恢复到 Perference 活动。

有几个老问题讨论同一个话题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2011-07-31
    相关资源
    最近更新 更多