2012-10-15 16 views
2

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

+0

大家好,欢迎到现场!你能告诉我们你到目前为止所尝试过的吗?也许你尝试过的一些搜索以及为什么它们没有效果?这将有助于答复者,因为他们知道你在找什么,并会帮助你,因为他们会希望更快地解决你的问题:) – Robotnik

回答

2

您可以创建/在OnBuildHeaders添加自己的头,然后检查身份证在onHeaderClick:

@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 
    } 
} 
2

有没有一种方法来创建全息风格(非推荐)PreferenceActivity,它是用纯Java页眉/片段,而不是XML?

您的onBuildHeaders()方法大概可以通过其他方式创建对象。您可能想要创建一个测试项目,通过XML来处理标题,并转储生成的Header对象的内容,以确认您将正确填充您的内容,因为Header的文档有点简洁。

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

PreferenceActivityinvalidateHeaders()方法看起来很有前途。通过检查源代码,它看起来像调用将触发另一个电话onBuildHeaders(),在那里你会提供新的列表,很像invalidateOptionsMenu()触发onCreateOptionsMenu()的呼叫。