2012-10-15 21 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()的呼叫。