2

有没有一种方法可以创建 Holo 风格的(非弃用)PreferenceActivity,它是纯 Java 中的标头/片段,而不是 XML?是否可以以编程方式添加和删除标题?

4

2 回答 2

2

有没有一种方法可以创建 Holo 风格的(非弃用)PreferenceActivity,它是纯 Java 中的标头/片段,而不是 XML?

您的onBuildHeaders()方法大概可以PreferenceActivity.Header通过其他方式创建对象。您可能希望创建一个测试项目,该项目通过 XML 处理标头并转储结果Header对象的内容以确认您将正确填充您的,因为文档Header有点简洁。

是否可以以编程方式添加和删除标题?

有一种invalidateHeaders()方法PreferenceActivity看起来很有希望。通过检查源代码,看起来调用会触发对 的另一个调用onBuildHeaders(),您将在其中提供新列表,就像invalidateOptionsMenu()触发对 的调用一样onCreateOptionsMenu()

于 2012-10-15T23:45:36.273 回答
2

您可以在 OnBuildHeaders 中创建/添加自己的 Headers,然后在 onHeaderClick 中检查 id:

@Override
public void onBuildHeaders(List<Header> target) {
    //loadHeadersFromResource(R.xml.prefs_sync_plugins, target);

    Header customHeader = new Header();
    customHeader.titleRes= R.string.customHeaderTitle;
    customHeader.id = R.string.customHeaderTitle;
    target.add(customHeader);
}

@Override
public void onHeaderClick(Header header, int position) {
    if (header.id == R.string.customHeaderTitle) {
        // Do something
    }
}
于 2013-03-01T14:34:35.073 回答